看了一醉解千愁的修改iis目录的asp.net版本之后,想到以前想过要通过代码给iis增加主机头,却一直没去研究,今天趁着兴趣,决定把这个问题解决了。
对于blog网站,如果需要为用户提供二级域名支持,而web程序不是运行默认站点中,就需要在用户注册时通过代码给iis增加相应的主机头。
这个问题是通过google搜索到append a host header by code in iis解决的,经过测试,确认方法可行并对代码进行了一些改进后,考虑到这个内容会给一些朋友带来帮助,于是就写了这篇文章。
代码如下:
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();
}
在找到append a host header by code in iis之前,我通过下面的代码没找到"serverbindings"属性,走了一些弯路。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器