Після довгих конфігурацій проб і помилок я наразі в змозі скрипт msdeploy.exe розгорнути пакет, вбудований у Visual Studio 2010, на віддалений сервер під керуванням IIS 7.5 з командним рядком:
Основна команда аутентифікації:
msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='Basic',username='DOMAIN\myuser',password='xxx',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted
Чи можу я усунути необхідність ввести пароль у командному рядку, включивши автентифікацію проходження? Документи веб-розгортання згадують параметр authType, який може задавати "NTLM" замість Basic. Однак кожного разу, коли я спробую це (див. Приклад нижче), я отримую помилку із зазначенням 401. Веб-журнал WMSvc показує 401.2, і жоден користувач не заповнюється в цьому записі журналу, на відміну від попередніх спроб використання автентифікації Basic насправді показує ДОМАН \ myuser у веб-журналі. Іншої корисної інформації в переглядачі подій клієнта чи сервера не знайдено.
Примітка. Цільовий веб-сервер знаходиться на іншому домені, тому я роблю net use \\webserver /u:DOMAIN\myuser
для встановлення маркер.
Спроба команди проходження автентифікації:
msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted
Здається, msdeploy.exe не належним чином автентифікується з IIS на рівні HTTP. Що може бути не так?
Клієнт - Windows XP, сервер - Win2008R2. В обох працює msdeploy.exe версії 7.1.618.0. В обох встановлені .NET 2.0, 3.5 та 4.0.