Я развертываю веб-приложение на своем хосте с помощью Web Deploy.При запуске из Visual Studio с помощью команды «Опубликовать» все работает нормально.Когда я пытаюсь выполнить развертывание с помощью веб-развертывания из MSBuild, веб-сайт становится недоступным, и даже веб-панель управления моего веб-узла больше не может получить доступ к веб-сайту.Я проследил это до того, что я считаю разрешениями для папок веб-сайта.
Публикация из Visual Studio обновляет ACL, веб-сайт работает правильно и панель управления веб-хоста работает (даже если она была повреждена с помощьюразвертывание из MSBuild (ранее).
Ниже приведен вывод при запуске из Visual Studio:
------ Publish started: Project: mywebapp, Configuration: Release Any CPU ------
Transformed Web.config using Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
Auto ConnectionString Transformed Views\Web.config into obj\Release\CSAutoParameterize\transformed\Views\Web.config.
Auto ConnectionString Transformed obj\Release\TransformWebConfig\transformed\Web.config into obj\Release\CSAutoParameterize\transformed\Web.config.
Copying all files to temporary location below for package/publish:
obj\Release\Package\PackageTmp.
Start Web Deploy Publish the Application/package to https://myhost.net:8172/MsDeploy.axd?site=mywebapp.com ...
Updating setAcl (mywebapp.com).
Updating setAcl (mywebapp.com).
Updating filePath (mywebapp.com\bin\mywebapp.Core.dll).
Updating filePath (mywebapp.com\bin\mywebapp.Core.pdb).
Updating filePath (mywebapp.com\bin\mywebapp.dll).
Updating filePath (mywebapp.com\bin\mywebapp.pdb).
Updating filePath (mywebapp.com\Views\Web.config).
Updating filePath (mywebapp.com\web.config).
Updating setAcl (mywebapp.com).
Updating setAcl (mywebapp.com).
Publish is successfully deployed.
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
Я обнаружил файл, который, как мне кажется, использует Visual Studio во время развертывания, который содержит ACLИнформация.Он называется myapp.SourceManifest.xml и находится в папке C: \ Projects \ mywebapp \ obj \ Release \ Package .
<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
<contentPath path="C:\Projects\mywebapp\obj\Release\Package\PackageTmp" />
<setAcl path="C:\Projects\mywebapp\obj\Release\Package\PackageTmp" setAclResourceType="Directory" />
<setAcl path="C:\Projects\mywebapp\obj\Release\Package\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" />
</sitemanifest>
Мой файл MSBuild содержитЧтобы выполнить развертывание, выполните следующие действия:
<Exec Command='"$(ProgramFiles)\IIS\Microsoft Web Deploy v2\msdeploy.exe" -verb:sync -source:package="mywebapp\obj\test\package\mywebapp.zip" -dest:auto,computername="https://myhost.net:8172/MsDeploy.axd?site=mywebapp.com",username=XXXX,password=XXXX,authtype=basic -allowuntrusted:true -setparam:name="IIS Web Application Name",value="mywebapp.com"' />
Когда я запускаю MSBuild для развертывания, я вижу, что файлы обновляются, но ACL не обновляются.
Мое развертывание MSBuild происходит из другой папки из-за другой конфигурации (Test, а не Release), а файл mywebapp.SourceManifest.xml отличается.
<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
<IisApp path="C:\Projects\mywebapp\obj\Test\Package\PackageTmp" managedRuntimeVersion="v4.0" />
</sitemanifest>
Разные mywebapp.SourceManifest.xml файлы, вероятно, как-то связаны с этим?Что мне нужно сделать, чтобы обновить ACL?
Обновление
Я обнаружил, что разница в mywebapp.SourceManifest.xml *Файл 1035 * был вызван наличием следующего в файле .csproj для моей тестовой конфигурации.
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
Я изменил это значение на True , и теперь файлы манифестато же самое между конфигурациями Test и Release.
Я также обнаружил, что при использовании Publish from Visual Studio он работает для Release, но не для Test.Поэтому я сейчас пытаюсь выяснить, что отличается между двумя конфигурациями, которые вызывают успешное или неудачное развертывание.