MSDeploy перезаписывает настройки IIS - PullRequest
1 голос
/ 03 ноября 2010

Наконец-то у меня есть настройка TeamCity для построения изменений в Source Control и отдельная настройка задачи MSBuild для упаковки и развертывания в IIS на промежуточном сервере с помощью цели package и сгенерированного сценария deploy.cmd. Все идеально с точки зрения событий сборки, включения / исключения файлов и т. Д. *

Однако я столкнулся с проблемой, связанной с развертыванием пакета. Всякий раз, когда я развертываю пакет на сервере, настройки IIS уничтожаются. Например, я могу установить заголовки срока действия кэша или включить статическое сжатие, и после развертывания пакета они вернутся к значениям по умолчанию для сервера.

Кто-нибудь знает, как я могу обойти это? Есть ли параметр, который я могу передать или правило, которое я могу игнорировать?

1 Ответ

5 голосов
/ 10 ноября 2010

Я думаю, что то, с чем вы сталкиваетесь, отличается от того, что вы могли бы подумать.

В IIS 7, когда вы устанавливаете значения для свойств, как вы описываете конфигурацию, которая хранится в файле web.config дляприложение, а не applicationHost.config.Например, я просто создал сайт и изменил эти настройки, а затем в моем файле web.config был добавлен следующий фрагмент.

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
    <urlCompression doStaticCompression="false" />
    <caching>
        <profiles>
            <add extension=".aspx" policy="CacheUntilChange" kernelCachePolicy="DontCache" />
        </profiles>
    </caching>
</system.webServer>

Итак, что происходит, когда вы выполняете синхронизацию web.config в вашемПакет перезаписывает файл web.config с измененными свойствами.Что нужно сделать, чтобы настроить приложение в IIS 7 по своему усмотрению, а затем захватить узел и поместить его в файл web.config.В качестве альтернативы, если вы хотите, вы можете поместить его либо в web.debug.config, либо в web.release.config, если вы хотите, чтобы это было только в вашем web.config при публикации.

...