Подтвердить что ты не робот

Как установить строку подключения 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 с помощью " заменен на.

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

4b9b3361

Ответ 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.

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