asp.net – 在Azure Web App中设置EF连接字符串

前端之家收集整理的这篇文章主要介绍了asp.net – 在Azure Web App中设置EF连接字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个ASP.NET(MVC)应用程序,并使用实体框架6连接到我们的数据库. DbContext是以标准方式构建的,它代表我们加载了连接字符串.生成代码如下所示:
public partial class MyContext : DbContext
{
    public MyContext(string connectionName)
        : base("name=" + connectionName)
    {
    }
}

我们将连接字符串设置在本地的web.config中也以标准方式:

<configuration>
  <connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Metadata=...;provider connection string=&quot;...&quot;" 
         providerName="System.Data.EntityClient" />

当我们将应用程序发布到Azure时,我们导航到Azure Portal,然后浏览到Web应用程序的设置,然后浏览到连接字符串列表.在那里我们添加我们在本地使用的EF连接字符串.当我们重新启动并访问该应用程序时,我们会根据我们选择的连接字符串的类型得到运行时错误.

对于自定义类型,我们得到以下运行时错误

Keyword not supported: ‘data source’.

对于sql Server或sql数据库,我们得到以下运行时错误

Keyword not supported: ‘Metadata’.

这真的好像是一个简单的故事,所以我们想知道出了什么问题.

解决方法

问题是转义的引号:& quot.

web.config中的连接字符串具有引号转义,因为它们是以XML属性序列化的.在Azure门户中输入连接字符串时,您应该提供原始未转义的字符串.这样的东西

Metadata = …; provider connection string =“Data Source = …”

David Ebbo的答案很有助于确认环境是按照您的期望设置的.在Visual Studio中通过向导发布时,还要注意.pubxml文件:它也将尝试填充连接字符串.

猜你在找的asp.Net相关文章