我正在将ASP.NET Web应用程序部署到Azure Web站点.
该站点使用实体框架,当我在Web.config其中包含以下内容时运行正常:
<connectionStrings>
<add name="DataContext" connectionString="metadata=res://*/Models.WpsData.csdl|res://*/Models.WpsData.ssdl|res://*/Models.WpsData.msl;provider=System.Data.SqlClient;provider connection string="data source=XXXX;initial catalog=XXXX;persist security info=True;user id=XXXX;password=XXXX;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
但是,如果删除此连接字符串并通过Azure管理门户指定,则会发生错误.
Name: DataContext
Value: metadata=res://*/Models.WpsData.csdl|res://*/Models.WpsData.ssdl|res://*/Models.WpsData.msl;provider=System.Data.SqlClient;provider connection string="data source=XXXX;initial catalog=XXXX;persist security info=True;user id=XXXX;password=XXXX;multipleactiveresultsets=True;application name=EntityFramework"
Type: Custom
Run Code Online (Sandbox Code Playgroud)
这会导致错误:在应用程序配置文件中找不到名为"DataContext"的连接字符串.
我们在Azure上有一个网站和一个SQL Server.我们在Azure门户中包含了Entity Framework连接字符串,但是我们收到以下错误: 应用程序配置文件中的连接字符串"MyEntities"不包含所需的providerName属性."
查看连接字符串,它显然有提供者:
metadata = res:// /MyEntities.csdl|res:// /MyEntities.ssdl|res://*/MyEntities.msl;provider=System.Data.SqlClient;provider connection string ="data source = tcp:myserver. database.windows.net,1433; initial catalog = mydatabase; user id = user @ myserver; password = PASSWRD; MultipleActiveResultSets = True; App = EntityFramework""providerName ="System.Data.EntityClient"
那要求的是什么?我们也"用正常的引号替换,但我们仍然会收到此错误.
当我们在开发中使用相同的连接字符串并连接到azure sql服务器时,一切正常,但不知何故,我们放在门户中的连接字符串替换了web.config中的连接字符串有问题.
任何帮助,将不胜感激