بعد قراءة مقالة Yizui Jie Qianchou حول تعديل دليل IIS لإصدار Asp.Net، اعتقدت أنني فكرت في إضافة رأس مضيف إلى IIS من خلال الكود من قبل، لكنني لم أدرسه أبدًا اليوم، استفدت من اهتمامي وقررت لحل هذه المشكلة.
بالنسبة لمواقع المدونات، إذا كنت بحاجة إلى توفير دعم اسم المجال الثانوي للمستخدمين، ولا يعمل برنامج الويب في الموقع الافتراضي، فأنت بحاجة إلى إضافة رأس المضيف المقابل إلى IIS من خلال التعليمات البرمجية عندما يقوم المستخدم بالتسجيل.
تم حل هذه المشكلة من خلال بحث Google لإلحاق رأس المضيف عن طريق الكود في IIS، بعد الاختبار، تم التأكد من أن الطريقة مجدية وتم إجراء بعض التحسينات على الكود، مع الأخذ في الاعتبار أن هذا المحتوى سيكون مفيدًا لبعض الأصدقاء، كما كتبت هذه المقالات.
الرمز هو كما يلي:
الفراغ الثابت الرئيسي (سلسلة [] الحجج)
{
AddHostHeader(1, null, 80, "test.cnblogs.com");
}
AddHostHeader باطلة ثابتة (int siteid، string ip، int port، string domain)
{
موقع DirectoryEntry = new DirectoryEntry("IIS://localhost/W3SVC/"+siteid);
PropertyValueCollection serverBindings = site.Properties["ServerBindings"];
string headerStr = string.Format("{0}:{1}:{2}",ip,port,domain);
إذا (!serverBindings.Contains(headerStr))
{
serverBindings.Add(headerStr);
}
site.CommitChanges();
}
قبل العثور على إلحاق رأس مضيف حسب التعليمات البرمجية في IIS، فشلت في العثور على سمة "ServerBindings" من خلال التعليمة البرمجية التالية واتخذت بعض التحويلات.
موقع DirectoryEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
الكود بسيط للغاية، ما يحتاج إلى شرح هو معرف الموقع. الموقع الافتراضي هو 1. بالنسبة للمواقع غير الافتراضية، يمكنك التعرف عليه من خلال النظر إلى اسم ملف سجل الموقع.
المصدر: مبرمج دودو سعيد