Как вы определяете deployIisAppPath для корня сайта, который не является DefaultWebSite?

У меня есть проект веб-приложения ASP.NET MVC, который я хочу развернуть на моем веб-сервере IIS. Дерево сайта устанавливается таким образом:

SERVERNAME(myDomain\Username)
   Application Pools
   Sites
      Default Web Site
      MyProjectSite
         bin
         Content
         ...
         Views

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

Следующие настройки остаются неизменными между итерациями:

/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=False /p:MSDeployPublishMethod=WMSvc /p:AuthType=Basic /p:Username="myUserName" /p:Password="MyPassword" /p:AllowUntrustedCertificate=True

Укажите имя узла/как IISAppPath:

Параметры:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite" /p:DeployIisAppPath="MyProjectSite/"

Ошибка:

Could not complete an operation with the specified provider ("createApp") when connecting using the Web Management Service - Я не хочу создавать новый сайт. Я хочу синхронизировать содержимое, которое уже существует.

Укажите IISAppPath как Root (предположим, что используется имя файла в URL-адресе)

Параметры:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite" /p:DeployIisAppPath="/"

Ошибка:

Could not complete an operation with the specified provider ("iisApp") when connecting using the Web Management Service - Похоже, что он пытается получить доступ к веб-сайту по умолчанию или чему-то (к которому я целенаправленно НЕ дал мне права).

Укажите IISAppPath как пустую строку (предположим, что используется имя файла в URL-адресе)

Параметры:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite" /p:DeployIisAppPath=""

Ошибка:

The "ConcatFullServiceUrlWithSiteName" task was not given a value for the required parameter "SiteAppName" - Таким образом, он интерпретирует "" как фактически нулевое значение, тем самым нарушая попытку его конкатенации.

Укажите атрибут сайта в URL, но SiteName/как IISAppPath

Параметры:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd" /p:DeployIisAppPath="MyProjectSite/"

Ошибка:

Could not complete an operation with the specified provider ("createApp") when connecting using the Web Management Service

Укажите атрибут сайта в URL, но SiteName как IISAppPath

Параметры:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd" /p:DeployIisAppPath="MyProjectSite"

Ошибка:

Could not complete an operation with the specified provider ("createApp") when connecting using the Web Management Service

Теперь, учитывая, что он запускает конкатенацию в SiteAppName, он должен быть объединен с именем сайта, да? Что вы должны положить туда, чтобы сайт мог синхронизироваться с корнем сайта?

Update

В попытке выяснить правильную схему пути я попытался опубликовать, используя диалог публикации Visual Studio 2012. В этом случае мне возвращается ошибка, говорящая, что время ожидания запроса (тестирование соединения работает почти мгновенно и предварительный просмотр изменений работает, но занимает несколько секунд). Я проверил журнал событий и tracelog для wmsvc безрезультатно. Даже когда трассировка установлена ​​до подробного, в tracelog ничего не отображается. Я попытался отключить брандмауэры на обоих компьютерах, и на этом фронте ничего не работает.

Ответ 1

Выделите это.

Проблема связана с двумя настройками на странице Web Deploy свойств проекта. Я ранее задал этот проект (в конфигурации Debug), чтобы скопировать только файлы, необходимые для запуска приложения, и НЕ собирать пакет zip. Однако я забыл что-либо сделать с этими настройками для конфигурации выпуска.

Причина (уровень достоверности 75%), которую он пытался использовать createApp, заключалась в том, что она была развернута из созданного им пакета Zip. Поэтому мои настройки IISAppPath в этих случаях были прекрасны, я просто использовал неправильную вещь.

Я установил для параметра Create deployment package as a zip file значение false, а раскрывающееся меню Items to deploy - только файлы, необходимые для запуска этого приложения, и все прошло без сбоев.

Кстати, я узнал (как упоминалось выше), что вы можете использовать профили публикации, выводимые в диалоговом окне Web Publish в Visual Studio (только 2012 год, к сожалению, 2010 вы должны сделать некоторые массажи, которые я не уверен). Я назвал мое без пробелов и предоставил пароль в качестве аргумента, а также параметр "Неверный сертификат". Теперь аргументы MSBuild в определении сборки для TFS выглядят следующим образом: /p:DeployOnBuild=True;PublishProfile=NameOfPublishProfile /p:AllowUntrustedCertificate=True /p:Password=PleaseVerifyMe