и преобразование web.config просто не будет работать не будет работать grrrrr

Я использую Visual Studio 2010. У меня есть этот файл web.config.

<?xml version="1.0"?>
<configuration>
  <system.web>      
      <compilation debug="true" targetFramework="4.0" />
      <authorization>
        <allow roles="domain\allow" />
        <deny users="*" />
      </authorization>      
    </system.web>
</configuration>

Теперь я перешел к решению -> Configuration Manager и добавил новую конфигурацию под названием «Производство».

Теперь я пришел, щелкнул правой кнопкой мыши свой файл web.config и выбрал «Добавить преобразования конфигурации».

Теперь я вижу файл с именем web.Production.config.

Я иду и добавляю это в свой файл

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="FooDB" connectionString="Data Source=FooServer;Initial Catalog=FooDB;Integrated Security=True;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
</configuration>

Теперь, когда я создаю и публикую свой проект, я вижу сообщение об ошибке

Web.Production.config(17,4): Warning : No element in the source document matches '/configuration/connectionStrings'

person Knows Not Much    schedule 04.10.2014    source источник
comment
Вы устанавливаете профиль публикации на Production во время публикации?   -  person Cody Stott    schedule 04.10.2014
comment
Может быть, потому что элемент connectionStrings не существует в вашей базе Web.config. Вы можете попробовать добавить для него пустой узел. У меня есть значение, которое я хочу для локальной отладки, и я использую преобразование replace вместо add.   -  person Cody Stott    schedule 04.10.2014
comment
да. Я дважды проверил, и профиль действительно использует «Производство» в качестве конфигурации сборки. Однако я заметил ошибку в выводе \Web.Production.config(3,4): Warning : No element in the source document matches '/configuration/connectionStrings'   -  person Knows Not Much    schedule 04.10.2014


Ответы (2)


Переместите connectionStrings в основной файл web.config. Единственное, что должно появиться в вашей производственной конфигурации, - это преобразования.

person André    schedule 04.10.2014
comment
Я хочу сказать, что нет connectionString для преобразования, поэтому в нем нет необходимости. Так что либо переместите его в web.config, либо удалите полностью. - person André; 04.10.2014
comment
Я просто предполагаю, что он не хочет, чтобы connectionString присутствовала во время отладки, поскольку он испытывает трудности с добавлением ее с помощью профиля публикации. - person Cody Stott; 04.10.2014
comment
Мне нужна строка подключения во время разработки. поэтому у меня в диспетчере конфигураций есть профиль под названием «Разработка». - person Knows Not Much; 04.10.2014
comment
Когда я говорю отладка, я имею в виду, что вы создаете локально и запускаете приложение с localhost, что означает, что вы не будете публиковать. Как я сказал ранее, файл Web.config должен иметь ваши локальные настройки, а профили публикации должны быть такими, как вы хотите, чтобы развернутое приложение было настроено в различных средах (производственная, тестовая и т. Д.) ) - person Cody Stott; 04.10.2014

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

Вызовите дополнительные файлы Web.config Web.Debug.config (Test) и Web.Release.config (Production), затем во время публикации вы свяжете конфигурацию Debug с профилем публикации Test, а конфигурацию Release с профилем публикации Production. .

РЕДАКТИРОВАТЬ:

Попробуйте изменить xdt:Transform на Insert и удалить атрибут xdt:Locator.

person Cody Stott    schedule 04.10.2014