加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 20:47:57 所属栏目:asp.Net 来源:网络整理
导读:我们有一个ASP.NET(MVC)应用程序,并使用实体框架6连接到我们的数据库. DbContext是以标准方式构建的,它代表我们加载了连接字符串.生成的代码如下所示: public partial class MyContext : DbContext{ public MyContext(string connectionName) : base("name=
我们有一个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文件:它也将尝试填充连接字符串.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读