伊人博客 一款有技术又有生活的博客

.net C# 程序控制IIS 添加站点域名绑定

发布时间:2018-07-21 18:10:50 标签: | 阅读(1604)

首先添加两个引用:

System.EnterpriseServices及System.DirectoryServices

然后再在代码中引用:

using System.DirectoryServices;
using System.EnterpriseServices;

然后就是如何添加绑定了:

//增加主机头(站点编号.ip.端口.域名)
public 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);
  log4net.LogManager.GetLogger("root").Info(serverBindings.PropertyName + serverBindings.Value.ToString());
  if (!serverBindings.Contains(headerStr))
  {
    serverBindings.Add(headerStr);
  }
  site.CommitChanges();
}

其中,siteid,自己到IIS中看,ip不指定的话填"*",端口一般是80,域名是怎么多少就入多少


注意:

1、添加后,会自动重启站点;

2、如果里面某个域名,重复添加,网站在重启的过程中会起不来,那就完蛋了,这个必须要配合自己的数据库;

3、必须在web.config添加权限配置:

<system.web>
  <identity impersonate="true" userName="Administrator" password="password" />
</system.web>

4、如果在IIS7中出现: DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000) 
“控制面板”->“程序和功能”->面板左侧“打开或关闭windows功能”->“Internet信息服务”->“Web管理工具”->“IIS 6管理兼容性”->“IIS 元数据库和IIS 6配置兼容性”。更理想的解决方式是用 WMI provider操作IIS 7 ,可参见此篇文章http://msdn.microsoft.com/en-us/library/aa347459.aspx


转载:https://blog.csdn.net/hejisan/article/details/71156796

原创文章如转载,请注明出处“伊人博客

站内搜索
关注公众号(随时搜索)
文章归档
热门推荐
随机推荐
冷门晾晒