หลังจากการทดลองใช้งานและการกำหนดค่าข้อผิดพลาดมากมายฉันสามารถสคริปต์ 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
ฉันสามารถกำจัดความต้องการที่จะให้รหัสผ่านในบรรทัดคำสั่งโดยการเปิดใช้งานการตรวจสอบผ่านหรือไม่? เอกสารเว็บปรับใช้พูดถึงพารามิเตอร์ AuthTypeที่สามารถระบุ 'NTLM' แทนขั้นพื้นฐาน อย่างไรก็ตามเมื่อใดก็ตามที่ฉันลองนี้ (ดูตัวอย่างด้านล่าง) ฉันได้รับข้อผิดพลาดที่ระบุ 401 บันทึกการใช้เว็บ WMSvc แสดง 401.2 และไม่มีหมายเลขผู้ใช้ในรายการบันทึกนั้นซึ่งแตกต่างจากความพยายามก่อนหน้าโดยใช้การรับรองความถูกต้องเบื้องต้น ในบันทึกการใช้เว็บ ไม่พบข้อมูลที่เป็นประโยชน์อื่น ๆ ในตัวแสดงเหตุการณ์ของไคลเอนต์หรือเซิร์ฟเวอร์
หมายเหตุ: เว็บเซิร์ฟเวอร์เป้าหมายอยู่ในโดเมนอื่นดังนั้นฉันจึงต้องnet use \\webserver /u:DOMAIN\myuser
สร้างโทเค็น
ความพยายามในการใช้คำสั่งตรวจสอบสิทธิ์ 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
ดูเหมือนว่า msdeploy.exe จะตรวจสอบสิทธิ์ IIS อย่างไม่ถูกต้องในระดับ HTTP มีอะไรผิดปกติ?
ไคลเอ็นต์คือ Windows XP, เซิร์ฟเวอร์คือ Win2008R2 ทั้งสองกำลังเรียกใช้ msdeploy.exe รุ่น 7.1.618.0 ทั้งคู่ติดตั้ง. NET 2.0, 3.5 และ 4.0