快速业务通道

ASP.NET通过WMI创建站点添加虚拟目录和主机头

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-10
了这个函数,它可以为网站绑定一个网络标识。

private static ManagementObject CreateServerBinding(ManagementScope scope,string hostName, string ip, int port)
{
    ManagementClass mc = new ManagementClass(scope,
           new ManagementPath("ServerBinding"), null);
    ManagementObject mco = mc.CreateInstance();

    mco.Properties["Hostname"].Value = hostName;
    mco.Properties["IP"].Value = ip;
    mco.Properties["Port"].Value = port;
    mco.Put();

    return mco;
}
 

注意的几点

安全。如果之用上面的那坨代码还不行。我千方百计想让其运行,但貌似忽视了2件事情。访问WMI和IIS metabase。

ASP.NET在Windows Server 2003和IIS6.0上运行默认使用的是NETWORK SERVICE帐户。但是,我们还是要使用客户端模拟。

所以在Web.config中添加下面一个配置:

<identity impersonate="true" />
 

使用了这个配置,IUSR_<servername>会使用客户端模拟的方式去访问IIS metabase。在后面的文章里,我就用IUSR_来表示这个帐户。不要忘记,在IUSR_后面加上你的服务器名称才是这个帐户的名字。

WMI权限设置

  • 控制面板 –> 管理工具 –> 计算机管理 –> 服务和应用程序。
  • 右键WMI控制,点击“属性”。
  • 选择“安全”选项卡。
  • 展开Root树
  • 点击MicrosoftIISv2。
  • 点击“安全设置”。
  • 点击“高级”。
  • 双击IUSR_(如果“组或用户名称”里面没有的话,就把它添加进去)
  • 把IUSR_ “应用到”设置成“这个名称控件和子名称空间”
  • “允许”所有权限。
  • 所有窗口都点击“确定”。

IIS metabase权限设置

  • 下载并安装IIS6 Resource Kit
  • 运行MetaBase Explorer (在开始菜单的IIS Resource Kit中可以找到)。
  • 展开树形目录,右键第一个或第二个节点并且选择“Permissions”。
  • 如果提示你“The current key inherits its security permissions from the key /”,点击“是”。
  • 选择“IIS_IUSRS”,如果没有的话,把它添加进去。
  • 选择“Full Control”。
  • 所有窗口都点击“确定”。

有了足够的权限就能运行了。

如果有高人能对这个方法谈谈自己的感想,并且能指出更好的配置IIS和WMI的方法,那就更赞了。记得之前,我都是自己捣鼓出来的,所以我不知道这个方法是不是最佳的方案。

如果你在运行代码的时候碰到任何问题,我愿意效劳。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号