Dopo molte configurazioni di prova ed errori, sono attualmente in grado di eseguire lo script di msdeploy.exe per distribuire un pacchetto creato in Visual Studio 2010 su un server remoto che esegue IIS 7.5 con una riga di comando come:
Comando di autenticazione di base:
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
Posso eliminare la necessità di fornire una password nella riga di comando abilitando l'autenticazione pass-through? I documenti Web Deploy menzionano il parametro authType che può specificare "NTLM", anziché Basic. Tuttavia, ogni volta che provo questo (vedere l'esempio seguente), viene visualizzato un errore che indica un 401. Il registro Web WMSvc mostra un 401.2 e nessun userid è popolato in quella voce di registro, a differenza dei tentativi precedenti che utilizzano l'autenticazione di base in realtà mostra DOMAIN \ myuser nel registro web. Non sono state trovate altre informazioni utili nel visualizzatore eventi del client o del server.
Nota: il server web di destinazione si trova su un altro dominio, quindi faccio un net use \\webserver /u:DOMAIN\myuser
per stabilire un token.
Tentativo di comando di autenticazione pass-through:
msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted
Sembra che msdeploy.exe non esegua correttamente l'autenticazione con IIS a livello HTTP. Cosa potrebbe esserci di sbagliato?
Il client è Windows XP, il server è Win2008R2. Entrambi eseguono msdeploy.exe versione 7.1.618.0. Entrambi hanno installato .NET 2.0, 3.5 e 4.0.