Setelah banyak percobaan dan konfigurasi kesalahan, saya saat ini dapat skrip msdeploy.exe untuk menyebarkan paket yang dibangun di Visual Studio 2010 ke server jauh yang menjalankan IIS 7.5 dengan baris perintah seperti:
Perintah otentikasi dasar:
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
Bisakah saya menghilangkan keharusan memberikan kata sandi di baris perintah dengan mengaktifkan otentikasi pass-through? Dokumen Web Deploy menyebutkan parameter authType yang dapat menentukan 'NTLM', bukan Basic. Namun, setiap kali saya mencoba ini (lihat contoh di bawah), saya mendapatkan kesalahan yang menunjukkan 401. Web log WMSvc menunjukkan 401.2 dan tidak ada userid yang terisi dalam entri log itu, tidak seperti upaya sebelumnya menggunakan otentikasi Dasar yang benar-benar menunjukkan DOMAIN \ myuser. di log web. Tidak ada informasi berguna lainnya yang ditemukan di penampil acara baik klien atau server.
Catatan: Server web target ada di domain lain, jadi saya lakukan net use \\webserver /u:DOMAIN\myuser
untuk membuat token.
Upaya perintah otentikasi 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
Tampaknya msdeploy.exe tidak diautentikasi dengan benar dengan IIS di tingkat HTTP. Apa yang salah?
Klien adalah Windows XP, Server adalah Win2008R2. Keduanya menjalankan msdeploy.exe versi 7.1.618.0. Keduanya memiliki .NET 2.0, 3.5, dan 4.0 diinstal.