2014-09-12 2 views
0

Я получаю сообщение об ошибкеразница между моим местным и производством web.config

Строка подключение «MyConnection» в файле конфигурации приложения не содержит необходимый ProviderName атрибута «.

Я прочитал этот вопрос The connection string 'MyConnection' in the application's configuration file does not contain the required providerName attribute." об этой же проблеме.

В моем случае providerName = "System.Data.SqlClient" правильно в моем web.config f ile в локальном, но исчезают, когда я публикую на своем производственном сервере (сборка в выпуске). У меня нет проблемы на моем локальном сервере.

EDIT

Вот мой релиз конфигурационный файл

<?xml version="1.0" encoding="utf-8"?> 

<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 --> 

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <!-- 
    In the example below, the "SetAttributes" transform will change the value of 
    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
    finds an attribute "name" that has a value of "MyDB". 

    <connectionStrings> 
     <add name="MyDB" 
     connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
     xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
    </connectionStrings> 
    --> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    <!-- 
     In the example below, the "Replace" transform will replace the entire 
     <customErrors> section of your web.config file. 
     Note that because there is only one customErrors section under the 
     <system.web> node, there is no need to use the "xdt:Locator" attribute. 

     <customErrors defaultRedirect="GenericError.htm" 
     mode="RemoteOnly" xdt:Transform="Replace"> 
     <error statusCode="500" redirect="InternalError.htm"/> 
     </customErrors> 
    --> 
    </system.web> 
</configuration> 
+1

Большая часть, вызванная преобразованием web.config http://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx проверьте, что находится в вашем web.release.config – Esko

+0

Когда вы публикуете , применяются любые преобразования конфигурации. Проверьте, есть ли у вас что-то вроде Web.Config.Production в вашем решении. – helb

+0

Строки подключения переписываются процессом публикации. Вы установили строки подключения в разделе «Настройки» в диалоговом окне «Опубликовать»? – spender

ответ

0

Используйте это для выпуска конфигурационного файла:

<connectionStrings> 
    <add name="MyDB" 
     connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
     xdt:Transform="SetAttributes" xdt:Locator="Match(name)" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

ConnectionString для вашего локального изменения в настоящее время на выпуск конфигурационного файла. Поэтому, если вы объявите имя поставщика в своей локальной конфигурации, это будет бесполезно, если вы публикуете свои файлы релизов. вам также нужно объявить имя поставщика в файле конфигурации выпуска.

Смежные вопросы