Sau nhiều lần thử và cấu hình lỗi, hiện tại tôi có thể kịch bản msdeploy.exe để triển khai gói được xây dựng trong Visual Studio 2010 đến một máy chủ từ xa chạy IIS 7.5 với một dòng lệnh như:
Lệnh xác thực cơ bản:
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
Tôi có thể loại bỏ nhu cầu cung cấp mật khẩu trong dòng lệnh bằng cách bật xác thực chuyển qua không? Các tài liệu Triển khai Web đề cập đến tham số authType có thể chỉ định 'NTLM', thay vì Cơ bản. Tuy nhiên, bất cứ khi nào tôi thử điều này (xem ví dụ bên dưới), tôi gặp lỗi khi chỉ ra 401. Nhật ký web WMSvc hiển thị 401.2 và không có userid nào được nhập trong mục nhật ký đó, không giống như các lần thử trước sử dụng Xác thực cơ bản thực sự hiển thị DOMAIN \ myuser trong nhật ký web. Không có thông tin hữu ích khác được tìm thấy trong trình xem sự kiện của máy khách hoặc máy chủ.
Lưu ý: Máy chủ web đích nằm trên một tên miền khác, vì vậy tôi thực hiện net use \\webserver /u:DOMAIN\myuser
để thiết lập mã thông báo.
Cố gắng thông qua lệnh xác thực:
msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted
Có vẻ như msdeploy.exe không xác thực chính xác với IIS ở cấp HTTP. Điều gì có thể sai?
Máy khách là Windows XP, Máy chủ là Win2008R2. Cả hai đều đang chạy msdeploy.exe phiên bản 7.1.618.0. Cả hai đều có cài đặt .NET 2.0, 3.5 và 4.0.