Después de leer la versión Asp.Net del artículo de Yizui Jie Qianchou sobre la modificación del directorio IIS, pensé que había pensado antes en agregar un encabezado de host a IIS a través del código, pero nunca lo estudié. Hoy, aproveché mi interés y decidí. para resolver este problema.
Para los sitios web de blogs, si necesita proporcionar soporte de nombre de dominio secundario para los usuarios y el programa web no se ejecuta en el sitio predeterminado, debe agregar el encabezado de host correspondiente a IIS mediante el código cuando el usuario se registra.
Este problema se resolvió mediante la búsqueda en Google para agregar un encabezado de host por código en IIS. Después de las pruebas, se confirmó que el método era factible y se realizaron algunas mejoras en el código. Considerando que este contenido sería útil para algunos amigos, escribí. estos artículos.
El código es el siguiente:
vacío estático principal (cadena [] argumentos)
{
AddHostHeader(1, nulo, 80, "test.cnblogs.com");
}
AddHostHeader vacío estático (int siteid, ip de cadena, puerto int, dominio de cadena)
{
Sitio DirectoryEntry = new DirectoryEntry("IIS://localhost/W3SVC/"+siteid);
PropertyValueCollection serverBindings = sitio.Properties["ServerBindings"];
cadena headerStr = string.Format("{0}:{1}:{2}",ip,puerto,dominio);
si (!serverBindings.Contains(headerStr))
{
serverBindings.Add(encabezadoStr);
}
sitio.CommitChanges();
}
Antes de encontrar Agregar un encabezado de host por código en IIS, no pude encontrar el atributo "ServerBindings" a través del siguiente código y tomé algunos desvíos.
Sitio DirectoryEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
El código es muy simple. Lo que hay que explicar es el ID del sitio. El sitio predeterminado es 1. Para los sitios no predeterminados, puede conocerlo mirando el nombre del archivo de registro del sitio.
Fuente: programador dudu-feliz