Мы развертываем приложение ASP.Net для IIS через API MSDeploy. Мы хотим обновить существующие веб-сайты. В нашем ... pubxml мы определили следующие:Как заставить MSDeploy API поддерживать существующую ConnectionString?
<ItemGroup>
<MSDeployParameterValue Include="$(DeployParameterPrefix)ConnectionstringA-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
<MSDeployParameterValue Include="$(DeployParameterPrefix)ConnectionstringB-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
</ItemGroup>
По умолчанию setParameters.xml создан на публикацию, выглядит следующим образом:
<setParameter name="ConnectionstringA-Web.config Connection String" value="metadata=res://*/itrDTO.csdl|res://*/itrDTO.ssdl|res://*/itrDTO.msl;provider=System.Data.SqlClient;provider connection string="data source=devServer;initial catalog=devDB;User Id=devUser;Password=devPW;MultipleActiveResultSets=True;App=EntityFramework"" />
<setParameter name="ConnectionstringB-Web.config Connection String" value="data source=devServer;initial catalog=devDB;integrated security=True" />
Я также пытался создать «Projectname.wpp .targets»с этой конфигурацией внутри моего проекта:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings>
</PropertyGroup>
</Project>
результатом является то, что ConnectionStrings не создаются внутри setparameters.xml.
Однако все комбинации конфигураций здесь меняют соединительные строки внутри web.config на сервере-получателе. Это происходит, если мы импортируем пакет с помощью IIS-ManagementUI И при развертывании пакета с помощью MSDeploy API.
Все примеры, которые я нашел для «параметризации» - тема для процесса управления IIS. Поскольку я понимаю параметризацию, это полезно только для ручной установки обновлений, так что у администратора есть пользовательский интерфейс для настройки материала. Но у нас нет интерфейса, когда мы обновляем системы наших клиентов.
Обновление: Когда я публикую с Visual Studio, вот смешной результат: «Эй! WebDeploy, держите руки подальше от строк подключения» Я думаю, что это означает,
Когда я просмотреть изменения, это результат:
Я удалил веб-сайт на IIS и переделал веб-сайт. Когда я обновляю сайт, мои строки подключения меняются обратно на значения моего проекта - web.config. У моего setParameters.xml и parameters.xml нет записей для connectionstrings. Где расположены config.transforms? Файлы web.debug.config и web.release.config по-прежнему по умолчанию. – Weissvonnix
Config transforms - это веб-файлы. [Env] .config. – chief7
yep, они пусты или содержат данные по умолчанию – Weissvonnix