【发布时间】: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(""","'").Replace("&", "&")));
有没有更好的方法?
【问题讨论】:
-
请输入整个错误
-
就是这样,它没有说别的。如果有用,我有堆栈跟踪
标签: c# azure asp.net-core-webapi asp.net-core-3.0