多くの試行錯誤の構成の後、現在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
パススルー認証を有効にすることで、コマンドラインでパスワードを提供する必要をなくすことはできますか?Web配置のドキュメントは、認証タイプのパラメータ言及代わりに、基本の「NTLM」を、指定することができます。ただし、これを試行するたびに(下の例を参照)、401を示すエラーが表示されます。WMSvcWebログには401.2が表示され、基本ログを使用した以前の試行とは異なり、実際にはDOMAIN \ myuserが表示されます。 Webログで。クライアントまたはサーバーのイベントビューアーには、他の有用な情報は見つかりません。
注:ターゲットWebサーバーは別のドメインにあるためnet use \\webserver /u:DOMAIN\myuser
、トークンを確立するためにaを実行します。
パススルー認証コマンドの試行:
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がHTTPレベルでIISで正しく認証されていないようです。何が間違っているのでしょうか?
クライアントはWindows XP、サーバーはWin2008R2です。両方ともmsdeploy.exeバージョン7.1.618.0を実行しています。どちらにも.NET 2.0、3.5、および4.0がインストールされています。