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.
quelle