发布Azure web app会将连接字符串放入连接字符串中
我在Web.config中有一个Azure Web App()和一个连接字符串,如下所示发布Azure web app会将连接字符串放入连接字符串中,azure,azure-sql-database,azure-web-app-service,Azure,Azure Sql Database,Azure Web App Service,我在Web.config中有一个Azure Web App()和一个连接字符串,如下所示 <connectionStrings> <add name="Entities" connectionString="metadata=res://*/TriviaWebModel.csdl|res://*/TriviaWebModel.ssdl|res://*/TriviaWebModel.msl;provider=System.Data.Sql
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/TriviaWebModel.csdl|res://*/TriviaWebModel.ssdl|res://*/TriviaWebModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:dolaris.database.windows.net;initial catalog={cata};persist security info=True;user id={usr};password={psw};multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
当我使用Visual Studio 2019版本16.7.2将web应用程序发布到Azure时,web.config将转换为此
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/TriviaWebModel.csdl|res://*/TriviaWebModel.ssdl|res://*/TriviaWebModel.msl;provider=System.Data.SqlClient;provider connection string='metadata=res://*/TriviaWebModel.csdl|res://*/TriviaWebModel.ssdl|res://*/TriviaWebModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:dolaris.database.windows.net;initial catalog={cata};persist security info=True;user id={usr};password={psw};MultipleActiveResultSets=True;App=EntityFramework"'" providerName="System.Data.EntityClient" />
</connectionStrings>
它看起来像是将连接字符串放入连接字符串中的转换类型。我可以在服务器上手动修复此问题,使我的应用程序正常工作,但我更希望发布工作正常
我从未见过类似的情况。提供程序连接字符串包含数据提供程序的有效关键字/值对。无效的提供程序连接字符串在由数据源计算时将导致运行时错误
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/TriviaWebModel.csdl|res://*/TriviaWebModel.ssdl|res://*/TriviaWebModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:dolaris.database.windows.net;initial catalog={cata};persist security info=True;user id={usr};password={psw};multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
确保根据的常规语法转义该值。例如,考虑以下连接字符串:<代码>服务器=服务器名称;用户ID=用户ID。它必须转义,因为它包含分号。由于它不包含双引号,因此它们可用于转义:
Provider Connection String ="Server=serverName; User ID = userID";
尝试从以下位置更改连接字符串:
<add
name="Entities"
connectionString="metadata=res://*/TriviaWebModel.csdl|res://*/TriviaWebModel.ssdl|res://*/TriviaWebModel.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=tcp:dolaris.database.windows.net;
initial catalog={cata};
persist security info=True;
user id={usr};
password={psw};
multipleactiveresultsets=True;
application name=EntityFramework""
providerName="System.Data.EntityClient" />
有什么区别?请看“提供者连接字符串='metadata=res://*/TriviaWebModel.csdl | res://*/TriviaWebModel.ssdl…”部分