C# Azure移动服务-发布后未找到连接字符串

C# Azure移动服务-发布后未找到连接字符串,c#,entity-framework,connection-string,publishing,azure-mobile-services,C#,Entity Framework,Connection String,Publishing,Azure Mobile Services,在我将移动服务部署到Azure后,由于以下错误,对该服务的调用失败: No connection string named 'ApplicationEntities' could be found in the application config file. 该错误仅发生在Azure端。当我在本地测试服务时,与远程数据库的连接不会出现问题 我将解决方案分为几个项目: Web Api 业务逻辑 数据访问(包含DbContext,首先是数据库) 公共(包含EF生成的实体) 像往常一样,我将D

在我将移动服务部署到Azure后,由于以下错误,对该服务的调用失败:

No connection string named 'ApplicationEntities' could be found in the application config file.
该错误仅发生在Azure端。当我在本地测试服务时,与远程数据库的连接不会出现问题

我将解决方案分为几个项目:

  • Web Api
  • 业务逻辑
  • 数据访问(包含DbContext,首先是数据库)
  • 公共(包含EF生成的实体)
像往常一样,我将DataAccess程序集的app.config中生成的连接字符串复制到我的
web.config
(web Api项目)的
connectionString
-元素中

我有两个连接字符串:

data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true

Data Source=theserver.database.windows.net;Initial Catalog=thedb_db;User ID=theuser;Password=thepassword;Asynchronous Processing=True;TrustServerCertificate=False;
用户名和密码与管理门户中声明的用户名和密码有着惊人的不同。 此外,EF元数据信息也会丢失

我在本地测试时得到以下连接字符串:

data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true

metadata=res://*/DataContext.ApplicationEntities.csdl|res://*/DataContext.ApplicationEntities.ssdl|res://*/DataContext.ApplicationEntities.msl;provider=System.Data.SqlClient;provider connection string=\"data source=theserveraddress,1433;initial catalog=thedb_db;persist security info=True;user id=theusername;password=thepassword;MultipleActiveResultSets=True;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;App=EntityFramework\"
我希望在Azure上运行时获得相同的连接字符串。知道怎么回事吗

更新:

我刚开始远程调试服务()。当我在文本编辑器中打开下载的发布配置文件时,我发现有一个属性
SQLServerDBConnectionString
——包含在部署时总是被强制执行的连接字符串——具有相同的用户名和密码,我不知道它是否存在。 我试图超越这个连接字符串,但没有帮助。该连接保持活动状态

更新日期2014年5月29日2:


似乎与此同时,azure移动团队已经修复了错误。仍然使用database first方法运行相同的代码,它现在正在工作。非常感谢

我只是想更新一下,我已经看了一段时间了,我想我也是第一次看到它。我不知道发生了什么,但我想让你知道,我们确实正在研究它


Henrik只是想更新一下,我已经看了一段时间了,我想我也是第一次看到它。我不知道发生了什么,但我想让你知道,我们确实正在研究它


Henrik只是想更新一下,我已经看了一段时间了,我想我也是第一次看到它。我不知道发生了什么,但我想让你知道,我们确实正在研究它


Henrik只是想更新一下,我已经看了一段时间了,我想我也是第一次看到它。我不知道发生了什么,但我想让你知道,我们确实正在研究它

亨里克(我没有足够的观点来评论,所以不得不这样回答)

亨里克,我也有同样的问题。如果我使用ftp连接到该框,我可以看到web.config具有正确的连接字符串,但由于尝试使用SQLServerDBConnectionString属性(OoWUqr****登录)中的用户名,因此失败。您是否可以让我知道它查找连接字符串的顺序和位置

如果它无法阻止它使用其他用户,我有没有办法允许他们通过移动服务访问正确的数据库

谢谢

F

(我没有足够的观点来评论,所以不得不这样做作为回答)

亨里克,我也有同样的问题。如果我使用ftp连接到该框,我可以看到web.config具有正确的连接字符串,但由于尝试使用SQLServerDBConnectionString属性(OoWUqr****登录)中的用户名,因此失败。您是否可以让我知道它查找连接字符串的顺序和位置

如果它无法阻止它使用其他用户,我有没有办法允许他们通过移动服务访问正确的数据库

谢谢

F

(我没有足够的观点来评论,所以不得不这样做作为回答)

亨里克,我也有同样的问题。如果我使用ftp连接到该框,我可以看到web.config具有正确的连接字符串,但由于尝试使用SQLServerDBConnectionString属性(OoWUqr****登录)中的用户名,因此失败。您是否可以让我知道它查找连接字符串的顺序和位置

如果它无法阻止它使用其他用户,我有没有办法允许他们通过移动服务访问正确的数据库

谢谢

F

(我没有足够的观点来评论,所以不得不这样做作为回答)

亨里克,我也有同样的问题。如果我使用ftp连接到该框,我可以看到web.config具有正确的连接字符串,但由于尝试使用SQLServerDBConnectionString属性(OoWUqr****登录)中的用户名,因此失败。您是否可以让我知道它查找连接字符串的顺序和位置

如果它无法阻止它使用其他用户,我有没有办法允许他们通过移动服务访问正确的数据库

谢谢


F

我自己也尝试过使用DB-first方法处理dot-net后端移动服务&遇到了与您相同的问题。进一步挖掘,以下是我的观察结果:

  • 具有dot net后端的azure移动服务必须仅使用代码优先方法。这将生成一个带有元数据的专用连接字符串(以res:开头)
  • 连接字符串的名称必须与下载默认示例todo应用程序(即Ms_TableConnectionString)时的名称相同 azure网站中有一个选项可以选择自定义SQL提供程序来帮助创建自定义连接字符串,但此选项不适用于azure管理门户中的dot net后端移动服务


    请注意,因为我没有足够的分数来评论,所以我将其作为答案发布。

    我自己也尝试过使用DB-first方法来处理dot-net后端移动服务,并遇到了类似的问题
    data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
    
    Data Source=theserver.database.windows.net;Initial Catalog=thedb_db;User ID=theuser;Password=thepassword;Asynchronous Processing=True;TrustServerCertificate=False;
    
    data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
    
    metadata=res://*/DataContext.ApplicationEntities.csdl|res://*/DataContext.ApplicationEntities.ssdl|res://*/DataContext.ApplicationEntities.msl;provider=System.Data.SqlClient;provider connection string=\"data source=theserveraddress,1433;initial catalog=thedb_db;persist security info=True;user id=theusername;password=thepassword;MultipleActiveResultSets=True;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;App=EntityFramework\"