Nachdem ich die Asp.Net-Version des Artikels zum Ändern des IIS-Verzeichnisses von Yizui Jie Qianchou gelesen hatte, dachte ich, ich hätte schon einmal über das Hinzufügen eines Host-Headers zu IIS über Code nachgedacht, ihn aber nie studiert. Heute habe ich mein Interesse ausgenutzt und beschlossen um dieses Problem zu lösen.
Wenn Sie für Blog-Websites Benutzern Unterstützung für sekundäre Domänennamen bereitstellen müssen und das Webprogramm nicht auf der Standardsite ausgeführt wird, müssen Sie bei der Benutzerregistrierung den entsprechenden Host-Header über Code zu IIS hinzufügen.
Dieses Problem wurde durch die Google-Suche zum Anhängen eines Host-Headers per Code in IIS gelöst. Nach dem Testen wurde bestätigt, dass die Methode machbar ist, und es wurden einige Verbesserungen am Code vorgenommen, da dieser Inhalt für einige Freunde hilfreich sein würde diese Artikel.
Der Code lautet wie folgt:
static void Main(string[] args)
{
AddHostHeader(1, null, 80, "test.cnblogs.com");
}
static void AddHostHeader(int siteid,string ip, int port, string domain)
{
DirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/"+siteid);
PropertyValueCollection serverBindings = site.Properties["ServerBindings"];
string headerStr = string.Format("{0}:{1}:{2}",ip,port,domain);
if (!serverBindings.Contains(headerStr))
{
serverBindings.Add(headerStr);
}
site.CommitChanges();
}
Bevor ich „Host-Header per Code anhängen“ in IIS gefunden habe, konnte ich das Attribut „ServerBindings“ nicht über den folgenden Code finden und bin einige Umwege gegangen.
DirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
Der Code ist sehr einfach. Was erklärt werden muss, ist die Site-ID. Die Standard-Site ist 1. Bei nicht standardmäßigen Sites können Sie dies anhand des Site-Protokolldateinamens erkennen.
Quelle: dudu-happy-Programmierer