我正在使用部署在WebApps,EF6,Azure SQL数据库
上的ASP.NET MVC4我有两个连接字符串,一个直接连接到数据库,另一个连接在我使用实体框架时需要。如果我通过Azure设置第一个并在web.config中保留EF字符串,一切正常。一旦我尝试将EF连接字符串移动到Azure,它就会中断。
我试图关注如何在Azure管理门户中设置EF连接字符串的所有帖子,建议似乎是使用以下内容:
在管理门户中:
名称:
EFConnectionString
值:
metadata=res://MyModel/model.csdl|res://MyModel/model.ssdl|res://MyModel/model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:myserver.database.windows.net,1234;Initial Catalog=mydatabase;User ID=Admin@myserver.database.windows.net;Password=12345678"
SQL数据库:
Custom
注意:
" is replaced by " in the Azure string.
在Web.config中,我仍然需要以下内容:
<add name="EFConnectionString" connectionString="" providerName="System.Data.EntityClient"/>
出于安全原因,我已更改了connectionstring中的某些细节,但真正的字符串在Web.config中运行正常。
然而,当我尝试上述内容时,我得到:
The page cannot be displayed because an internal server error has occurred.
进一步记录错误消息:
The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
任何帮助表示赞赏。我正在尝试这样做以增强存储密码的安全性以访问Azures上的数据库,因为据我所知,通过门户网站设置它们会加密它们。
感谢。
答案 0 :(得分:1)
首先检查您的部署。我遇到了类似的问题,经过几个小时的努力,我发现我在没有实际发送连接字符串的情况下部署,回到门户配置中的任何内容...... we.config中的其他键是被发送过来,但是conn字符串不是......在我在门户网站上正确设置之后,一切都恢复了正常......