我正在使用 Azure 移动服务开发云服务,为了快速测试和调试它,我想将其部署在我的本地计算机上。我选择该项目,按 F5,让它在本地 PC 的 IIS Express 中运行。我针对 IIS 服务的本地 URI 地址执行客户端,当我尝试插入值时,如果我尝试检索或插入新对象,则会出现此异常:
An exception of type 'System.ArgumentException' occurred in EntityFramework.SqlServer.dll but was not handled in user code
Additional information: The database name 'TR_MyTrip_Server_ExtraData_Service]_Persons_InsertUpdateDelete' is invalid. Database names must be of the form [<schema_name>.]<object_name>.
我调试了 Controller 的初始化,发现移动服务在 ServiceContext 对象的 DataBase 属性上部署了一个具有此连接信息的 LocalDb 实例:
Data Source=(localdb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MyTrip.Server.ExtraData.Service-20140731060708.mdf;Initial Catalog=aspnet-TestProject.Server.ExtraData.Service-20140731060708;Integrated Security=True;MultipleActiveResultSets=True
如果我尝试通过 SQL Management Studio 使用此连接字符串连接到 LocalDB,则无法找到此数据库
我可以使用 SQL 管理工作室在 CMD 上运行此命令并检索 LocalDB 的连接来访问 LocalDb 实例
SqlLocalDB.exe info v11.0
无论如何,在 SQL Management Studio 上我看不到任何与我的移动服务 Controller 相关的数据库。我在谷歌上搜索,我找到的唯一相关链接是 this但不起作用...有人知道发生了什么事吗?
非常感谢
最佳答案
当您的项目名称中包含句点时,就会出现问题。就像 TestProject.Server.ExtraData.Service 一样。
要解决此问题,请进入 web.config 并编辑名为“MS_MobileServiceName”的应用程序设置,删除句点。这是用作数据库中移动服务表的 SQL 架构名称的值。其中不能包含句点或其他特殊字符。
我通常尝试使其与我将部署到的移动服务的名称相同,但这在技术上不是必需的。
关于c# - 在本地计算机中使用 Azure 移动服务进行开发[.Net 后端],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25647447/