Как установить строку подключения ADO.NET Entity Framework через портал управления Windows Azure (Preview)?

На портале управления Windows Azure (Preview) вы можете изменить параметры конфигурации для веб-сайтов (см. http://www.windowsazure.com/en-us/manage/services/web-sites/how-to-configure-websites/#howtochangeconfig).

В настоящее время я устанавливаю строку подключения для моего соединения ADO.NET Entity Framework через Web.Release.Config, но я хочу установить его через портал управления, но независимо от того, что я использую, я всегда получаю следующую ошибку:

Указанное именованное соединение либо не найдено в конфигурация, не предназначенная для использования с поставщиком EntityClient, или недействительны.

Он работает для регулярных строк соединения, то есть без ключа метаданных, определяющего метаданные и информацию о сопоставлении (csdl, ssdl, msl).

Вот что я делаю:

Я перехожу к https://manage.windowsazure.com/#Workspaces/WebsiteExtension/Website/[MY-STAGING-SITE-NAME]/configure

В разделе "строки подключения" у меня есть ключ с именем "ApplicationServices", который выглядит так:

Server = ТСР: xxxxx.database.windows.net, 1433; Database = ххххх; Пользователь ID = ххххх ххххх @; Password = ххххх; Trusted_Connection = False; Encrypt = True; Соединение Тайм-аут = 30;

Это работает.

У меня есть еще один ключ для соединения Entity Framework. Позвольте назвать этот FooBarContext. Это выглядит так:

метаданные = разрешение:///Models.FooBarContext.csdl | Рез:///Models.FooBarContext.ssdl | Рез://*/Models.FooBarContext.msl; поставщик = System.Data.SqlClient; поставщик соединение строка = "Server = ТСР: fooserver.database.windows.net, 1433; Database = Foobar; Пользователь ID = MyName @fooserver; Password = XXXXXXXXXX; Trusted_Connection = False; Encrypt = True; Соединение Тайм-аут = 30;"

Это вызывает ошибку, описанную выше. Он копируется из рабочего значения в Web.Release.Config с помощью " заменен на.

Я пробовал другие варианты: с помощью " нетронутый, с добавлением метаданных в конце, но безрезультатно. Я воспроизвел проблему со вторым веб-сайтом.

Ответ 1

Решение моей проблемы заключалось в выборе "Пользовательский" вместо "SQL Azure" из селектора SQL Azure/SQL Server/MySQL/Custom для Entity Строка соединения с базой данных, даже если база данных работает на SQL Azure.

Ответ 2

введите описание изображения здесь

Заменить

"

с

"

В строке подключения.

Ответ 3

Я не только использовал двойные кавычки (или одиночные кавычки) вместо " (и выбирал Custom для этого типа), но я также должен был убедиться, что в моей конфигурации преобразования было фиктивное значение. Я заменил все connectionStrings node, но решил сохранить это и добавить следующее:

<add xdt:Transform="Replace" xdt:Locator="Match(name)" name="FooBarEntities" connectionString="temp" providerName="System.Data.EntityClient" />

Без этого я получил следующую ошибку:

The connection string 'FooBarEntities' in the application configuration file does not contain the required providerName attribute.

Ответ 4

У меня была та же проблема. Я решил, вставив в web.config эту строку соединения:

<add name="eManagerTurModelConnection" connectionString="metadata=res://*/ORM.eManagerFinanceModel.csdl|res://*/ORM.eManagerFinanceModel.ssdl|res://*/ORM.eManagerFinanceModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=<server>.database.windows.net;Initial Catalog=eManagerTur;Integrated Security=False;User ID=<user>;Password=<Password>;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

И после того, как я удалил строку подключения моего сайта, работал, потому что не получал строку подключения, которую я добавил в свой web.config.

Английский плохой... =)