【发布时间】:2013-01-05 18:05:23
【问题描述】:
在 Windows Azure(预览版)管理门户中,您可以更改网站的配置选项(请参阅 http://www.windowsazure.com/en-us/manage/services/web-sites/how-to-configure-websites/#howtochangeconfig)。
我目前通过 Web.Release.Config 为我的 ADO.NET Entity Framework 连接设置连接字符串,但我想通过管理门户设置它,但无论我使用什么,我总是以以下错误结束:
指定的命名连接在 配置,不打算与 EntityClient 提供程序一起使用, 或无效。
它适用于常规连接字符串,即没有定义元数据和映射信息(csdl、ssdl、msl)的元数据键。
这是我的工作:
在“连接字符串”下,我有一个名为“ApplicationServices”的键,如下所示:
服务器=tcp:xxxxx.database.windows.net,1433;数据库=xxxxx;用户 ID=xxxxx@xxxxx;密码=xxxxx;Trusted_Connection=False;Encrypt=True;Connection 超时=30;
这个有效。
我有另一个用于实体框架连接的密钥。我们称它为 FooBarContext。它看起来像这样:
metadata=res:///Models.FooBarContext.csdl|res:///Models.FooBarContext.ssdl|res://*/Models.FooBarContext.msl;provider=System。 Data.SqlClient;提供者 联系 string="服务器=tcp:fooserver.database.windows.net,1433;数据库=foobar;用户 ID=myname@fooserver;密码=xxxxxxxxxx;Trusted_Connection=False;Encrypt=True;Connection 超时=30;"
这会导致上述错误。它是从 Web.Release.Config 中的 working 值复制而来的,带有“”替换为“。
我尝试了其他变体:使用 "原封不动,最后附加了元数据,但无济于事。我已经用第二个网站重现了这个问题。
【问题讨论】:
-
首先检查是否看到
ConfigurationManager.ConnectionStrings中的连接字符串(即写入网页)。该名称应该出现在web.config中,Azure WS 会将其替换为门户中定义的值(如果不存在则不会添加新值)。双引号"通过门户可以正常工作,您不必处理它。 -
@cincura.net 我已经运行了以下测试:将 web.config 中的值设置为“[SET ON manage.windowsazure.com]”。当我部署并写出 System.Configuration.ConfigurationManager.ConnectionStrings 中的值时,它们将替换为通过 manage.windowsazure.com 设置的值。所以机制起作用了,但问题仍然是EF连接字符串的格式无法识别。
-
@cincura.net 您是否有通过 manage.windowsazure.com 设置的有效 EF 连接字符串的(匿名)示例?
标签: entity-framework deployment azure connection-string azure-web-app-service