Après avoir lu la version Asp.Net de l'article de Yizui Jie Qianchou sur la modification du répertoire IIS, j'ai pensé que j'avais déjà pensé à ajouter un en-tête d'hôte à IIS via du code, mais je ne l'ai jamais étudié. Aujourd'hui, j'ai profité de mon intérêt et j'ai décidé. pour résoudre ce problème.
Pour les sites Web de blogs, si vous devez fournir une prise en charge des noms de domaine secondaires aux utilisateurs et que le programme Web ne s'exécute pas sur le site par défaut, vous devez ajouter l'en-tête d'hôte correspondant à IIS via le code lorsque l'utilisateur s'inscrit.
Ce problème a été résolu grâce à la recherche Google pour ajouter un en-tête d'hôte par code dans IIS. Après des tests, il a été confirmé que la méthode était réalisable et certaines améliorations ont été apportées au code. Considérant que ce contenu serait utile à certains amis, j'ai écrit. cet article.
Le code est le suivant :
static void Main(string[] arguments)
{
AddHostHeader(1, null, 80, "test.cnblogs.com");
}
static void AddHostHeader (int siteid, string ip, int port, string domain)
{
Site DirectoryEntry = new DirectoryEntry("IIS://localhost/W3SVC/"+siteid);
PropertyValueCollection serverBindings = site.Properties["ServerBindings"];
string headerStr = string.Format("{0}:{1}:{2}",ip,port,domain);
si (!serverBindings.Contains(headerStr))
{
serverBindings.Add(headerStr);
}
site.CommitChanges();
}
Avant de trouver Ajouter un en-tête d'hôte par code dans IIS, je n'ai pas réussi à trouver l'attribut "ServerBindings" via le code suivant et j'ai fait quelques détours.
Site DirectoryEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
Le code est très simple. Ce qui doit être expliqué, c'est l'identifiant du site. Le site par défaut est 1. Pour les sites autres que ceux par défaut, vous pouvez le connaître en regardant le nom du fichier journal du site.
Source : programmeur dudu-happy