【问题标题】:Database first EF and ASP.NET Core 3 Web API published on Azure, connection string error数据库第一个 EF 和 ASP.NET Core 3 Web API 在 Azure 上发布,连接字符串错误
【发布时间】:2020-03-22 11:19:47
【问题描述】:

我正在开发一个带有数据库首先生成的数据库上下文的 ASP.NET Core 3 Web API。 我在 appsettings.json 文件中有连接字符串。

当我在 IIS Express 上本地运行它时一切都很好。

问题是当我在 Azure 上发布它时,它给了我错误:

System.ArgumentException: Keyword not supported: 'data source'.
[...]

我注意到连接字符串在发布时更改为:

metadata=res://*/DTOs.csdl|res://*/DTOs.ssdl|res://*/DTOs.msl;provider=System.Data.SqlClient;provider connection string='data source=*****;initial catalog=*****;persist security info=True;user id=*****;password=*****;MultipleActiveResultSets=True;App=EntityFramework'",

到:

metadata=res://*/DTOs.csdl|res://*/DTOs.ssdl|res://*/DTOs.msl;provider=System.Data.SqlClient;provider connection string="data source=*****;initial catalog=*****;persist security info=True;user id=*****;password=*****;MultipleActiveResultSets=True;App=EntityFramework""

作为一种解决方法,我改变了这条线

services.AddScoped<palmdtos>(_ => new MyDbContext(Configuration.GetConnectionString("myConnectionString")));

services.AddScoped<palmdtos>(_ => new MyDbContext(Configuration.GetConnectionString("myConnectionString").Replace("&quot;","'").Replace("&amp;", "&")));

有没有更好的方法?

【问题讨论】:

  • 请输入整个错误
  • 就是这样,它没有说别的。如果有用,我有堆栈跟踪

标签: c# azure asp.net-core-webapi asp.net-core-3.0


【解决方案1】:

使用 EF 设计器创建的模型与 Code First 的不同之处在于,您的模型已经存在,并且不是在应用程序运行时从代码生成的。该模型通常作为 EDMX 文件存在于您的项目中。

设计器会将 EF 连接字符串添加到您的 app.config 或 web.config 文件中。此连接字符串的特殊之处在于它包含有关如何在 EDMX 文件中查找信息的信息。

请参阅此article

原因是我们正在使用的 EDMX 文件之一的连接字符串。由于 EDMX 必须是只读的,我们必须在 Azure 中使用不同的连接字符串。

替换&amp;quote时;通过单引号',它将再次正常工作。所以去 azure 网站 > Configuration > Connection strings > 用 custom 类型添加你的 conn 字符串。

注意:确保您还为 Entity Framework 连接字符串选择 Custom 而不是 SQLAzure,即使数据库在 Azure 上运行。

【讨论】:

    【解决方案2】:

    您可以尝试更新设置吗?

    在 Azure 面板中:

    Select App -> Application Settings -> Enter new Connection String -> Save
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 2016-08-02
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多