Po długiej konfiguracji prób i błędów obecnie jestem w stanie napisać skrypt msdeploy.exe w celu wdrożenia pakietu wbudowanego w Visual Studio 2010 na zdalnym serwerze z uruchomionym IIS 7.5 za pomocą wiersza poleceń takiego jak:
Podstawowe polecenie uwierzytelnienia:
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
Czy mogę wyeliminować potrzebę podawania hasła w wierszu poleceń, umożliwiając uwierzytelnianie tranzytowe? Dokumenty Web Deploy wspominają parametr authType, który może określać „NTLM” zamiast Basic. Jednak za każdym razem, gdy spróbuję tego (patrz przykład poniżej), pojawia się błąd wskazujący 401. Dziennik internetowy WMSvc pokazuje 401,2 i żaden wpis użytkownika nie jest wypełniany w tym wpisie dziennika, w przeciwieństwie do poprzednich prób używania uwierzytelnienia podstawowego faktycznie pokazuje DOMAIN \ mój użytkownik w dzienniku internetowym. W podglądzie zdarzeń klienta ani serwera nie znaleziono żadnych innych przydatnych informacji.
Uwaga: Docelowy serwer znajduje się w innej domenie, więc robię a, net use \\webserver /u:DOMAIN\myuser
aby ustanowić token.
Próba polecenia uwierzytelnienia przekazywanego:
msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted
Wygląda na to, że msdeploy.exe nie jest poprawnie uwierzytelniany w IIS na poziomie HTTP. Co może być nie tak?
Klientem jest Windows XP, Serwer to Win2008R2. Oba działają w systemie msdeploy.exe w wersji 7.1.618.0. Oba mają zainstalowane .NET 2.0, 3.5 i 4.0.