zoukankan      html  css  js  c++  java
  • .net 程序 动态 控制IIS 站点域名绑定

    第一步:引用

     导入 System.EnterpriseServices及System.DirectoryServices 两个引用

     程序引用:

    using System.DirectoryServices;
    using System.EnterpriseServices;

    第二步:

    /// siteId  是网站的编号,ip 指向的ip 一般默认  port 一般默认80 ,domain 自定义前缀

    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();
    }

    注意一下几点:

    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

  • 相关阅读:
    Hadoop IO
    HDFS
    简介
    队列
    classLoader和Class.forName的区别
    String为什么是final类型的
    Fabric
    超级账本——面向企业的分布式账本
    以太坊
    pycharm破解教程
  • 原文地址:https://www.cnblogs.com/520lw/p/10592616.html
Copyright © 2011-2022 走看看