Nach umfangreichen Test- und Fehlerkonfigurationen kann ich derzeit msdeploy.exe als Skript ausführen, um ein in Visual Studio 2010 erstelltes Paket auf einem Remoteserver mit IIS 7.5 mit einer Befehlszeile wie der folgenden bereitzustellen:
Grundlegender Authentifizierungsbefehl:
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
Kann ich die Notwendigkeit beseitigen, ein Kennwort in der Befehlszeile anzugeben, indem ich die Passthrough-Authentifizierung aktiviere? In den Web Deploy-Dokumenten wird der authType-Parameter erwähnt , der 'NTLM' anstelle von Basic angeben kann. Wenn ich dies versuche (siehe Beispiel unten), wird jedoch eine Fehlermeldung angezeigt, die auf eine 401 hinweist. Im WMSvc-Webprotokoll wird eine 401.2 angezeigt, und in diesem Protokolleintrag wird keine Benutzer-ID angegeben, im Gegensatz zu früheren Versuchen mit Standardauthentifizierung wird DOMÄNE \ meinBenutzer angezeigt im Weblog. In der Ereignisanzeige von Client oder Server werden keine weiteren nützlichen Informationen gefunden.
Hinweis: Der Ziel-Webserver befindet sich in einer anderen Domäne. Daher muss net use \\webserver /u:DOMAIN\myuser
ein Token erstellt werden.
Versuch eines Pass-Through-Authentifizierungsbefehls:
msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted
Offenbar authentifiziert sich msdeploy.exe auf HTTP-Ebene nicht ordnungsgemäß bei IIS. Was könnte falsch sein?
Client ist Windows XP, Server ist Win2008R2. Beide führen msdeploy.exe Version 7.1.618.0 aus. Beide haben .NET 2.0, 3.5 und 4.0 installiert.