หลังจากอ่านบทความของ Yizui Jie Qianchou เวอร์ชัน Asp.Net เกี่ยวกับการแก้ไขไดเรกทอรี IIS ฉันคิดว่าฉันเคยคิดที่จะเพิ่มส่วนหัวของโฮสต์ให้กับ IIS ผ่านโค้ดมาก่อน แต่ไม่เคยศึกษาเลย วันนี้ฉันใช้ประโยชน์จากความสนใจของฉันและตัดสินใจ เพื่อแก้ไขปัญหานี้
สำหรับเว็บไซต์บล็อก หากคุณต้องการให้การสนับสนุนชื่อโดเมนรองสำหรับผู้ใช้ และโปรแกรมเว็บไม่ทำงานในไซต์เริ่มต้น คุณจะต้องเพิ่มส่วนหัวของโฮสต์ที่เกี่ยวข้องให้กับ IIS ผ่านโค้ดเมื่อผู้ใช้ลงทะเบียน
ปัญหานี้ได้รับการแก้ไขผ่านการค้นหาของ Google เพื่อต่อท้ายส่วนหัวของโฮสต์ด้วยโค้ดใน IIS หลังจากการทดสอบ ได้รับการยืนยันว่าวิธีนี้เป็นไปได้และมีการปรับปรุงโค้ดบางอย่าง เมื่อพิจารณาว่าเนื้อหานี้จะเป็นประโยชน์กับเพื่อนบางคน บทความนี้
รหัสมีดังนี้:
โมฆะคงที่หลัก (สตริง [] args)
-
AddHostHeader(1, null, 80, "test.cnblogs.com");
}
AddHostHeader เป็นโมฆะแบบคงที่ (int siteid, string ip, int port, string domain)
-
ไซต์ DirectoryEntry = DirectoryEntry ใหม่ ("IIS://localhost/W3SVC/"+siteid);
PropertyValueCollection serverBindings = site.Properties ["ServerBindings"];
string headerStr = string.Format("{0}:{1}:{2}",ip,พอร์ต,โดเมน);
ถ้า (!serverBindings.Contains(headerStr))
-
serverBindings.Add(headerStr);
-
เว็บไซต์ ยอมรับการเปลี่ยนแปลง ();
-
ก่อนที่จะค้นหาผนวกส่วนหัวของโฮสต์ด้วยโค้ดใน IIS ฉันไม่พบแอตทริบิวต์ "ServerBindings" ผ่านโค้ดต่อไปนี้และได้เลี่ยงไปบ้าง
ไซต์ DirectoryEntry = DirectoryEntry ใหม่ ("IIS://localhost/W3SVC/1/root");
รหัสนั้นง่ายมาก สิ่งที่ต้องอธิบายคือ siteid ไซต์เริ่มต้นคือ 1 สำหรับไซต์ที่ไม่ใช่ค่าเริ่มต้น คุณสามารถทราบได้โดยดูที่ชื่อไฟล์บันทึกของไซต์
ที่มา: โปรแกรมเมอร์ dudu-happy