设为首页 收藏本站
查看: 1051|回复: 0

[经验分享] asp.net获取本地IIS上绑定的网站的信息

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-15 09:10:51 | 显示全部楼层 |阅读模式
我们使用ADSI来操作IIS的时候,需要提供他们的Path。比如默认本机80端口的默认站点的目录路径就是:IIS://localhost/w3svc/1/root
它的格式是:
IIS://ComputerName/Service/Website/Directory

ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localhost
Service:即操作的服务器,IIS中有Web,也有FTP,还有SMTP这些服务,我们主要是操作IIS的Web功能,因此此处就是”W3SVC”,如果是FTP则应是”MSFTPSVC”
WebSite:一个IIS服务中可以包括很多的站点,这个就用于设置操作的站点。他的值是一个数字,默认是1,表示缺省站点,如果有其它,也是数字。
但需要注意的是,并不是自增。后面会有一个小程序获得这个值。

Directory:要操作的目录名称,一个站点一般顶层目录为”ROOT”,其它目录则是他的孩子(Child)。

以上资料摘自飞刀的文章,具体看:
http://aspcool.com/lanmu/browse1.asp?ID=914&bbsuser=csharp
http://aspcool.com/lanmu/browse1.asp?ID=915&bbsuser=csharp

由于上面的WebSite 并不是简单的自增。我们要知道某台机子上所有站点对应的值,可以通过下面的小程序获得这个值:
using System.DirectoryServices;
……..

DirectoryEntry root = newDirectoryEntry(“IIS://localhost/W3SVC”);
foreach(DirectoryEntry dir in root.Children)
{
if(dir.SchemaClassName == “IIsWebServer”)
{
  string ww =dir.Properties["ServerComment"].Value.ToString();
  Response.Write(string.Format(“IIS://localhost/W3SVC/{0}/ROOT/&nbsp;&nbsp;{1}<br>”,dir.Name,ww));
}
}

当然,你想获得更多的属性&#20540;,可以通过 dir.Properties[] 去获得。
为了说明这里的 WebSite 并不是自增的,下面看我在我本机执行上面程序的结果。
IIS://localhost/W3SVC/1/ROOT/  Default WebSite
IIS://localhost/W3SVC/1307630583/ROOT/ MyWeb81
IIS://localhost/W3SVC/1307630584/ROOT/ MyWeb82
IIS://localhost/W3SVC/1307630585/ROOT/ MyWeb83
IIS://localhost/W3SVC/1307630586/ROOT/ MyWeb84
IIS://localhost/W3SVC/1307630587/ROOT/ MyWeb85
IIS://localhost/W3SVC/1307630683/ROOT/ MyWeb90
IIS://localhost/W3SVC/1307630684/ROOT/ MyWeb91
IIS://localhost/W3SVC/1307630685/ROOT/ MyWeb92
IIS://localhost/W3SVC/1307630686/ROOT/ MyWeb93
IIS://localhost/W3SVC/1758797915/ROOT/ ghj1976.net
IIS://localhost/W3SVC/2/ROOT/  MicrosoftSharePoint Administration
IIS://localhost/W3SVC/2546/ROOT/  94

各个的&#20540;都不一样。所以在使用这个路径的时候,不要想当然的以为是简单的自增。




   protected void Page_Load(object sender, EventArgs e)
    {
        DirectoryEntry directoryEntry = new DirectoryEntry(@&quot;IIS://localhost/W3SVC&quot;);
        IEnumerator ienum = directoryEntry.Children.GetEnumerator();
        string HostInfo = &quot;&quot;;
        while (ienum.MoveNext())
        {
            DirectoryEntry entrypool = (DirectoryEntry)ienum.Current;
            System.DirectoryServices.PropertyCollection ppC = (System.DirectoryServices.PropertyCollection)entrypool.Properties;
            IDictionaryEnumerator idenum = ppC.GetEnumerator();
            if (entrypool.SchemaClassName == &quot;IIsWebServer&quot;)
            {
                string[] serverBind = ppC[&quot;ServerBindings&quot;][0].ToString().Split(':');//获取网站绑定的IP,端口,主机头
                string EnableDeDoc = ppC[&quot;EnableDefaultDoc&quot;][0].ToString();
                string DefaultDoc = ppC[&quot;DefaultDoc&quot;][0].ToString();//默认文档
                string MaxConnections = ppC[&quot;MaxConnections&quot;][0].ToString();//iis连接数,-1为不限制
                string ConnectionTimeout = ppC[&quot;ConnectionTimeout&quot;][0].ToString();//连接超时时间
                string MaxBandwidth = ppC[&quot;MaxBandwidth&quot;][0].ToString();//最大绑定数
                string ServerState = ppC[&quot;ServerState&quot;][0].ToString();//运行状态                HostInfo &#43;= &quot;站点描述:&quot; &#43; ppC[&quot;ServerComment&quot;][0].ToString() &#43; &quot;<br>IP地址:&quot; &#43; serverBind[0].ToString() &#43; &quot;<br>TCP端口:&quot; &#43; serverBind[1].ToString() &#43; &quot;<br>主机头:&quot; &#43; serverBind[2].ToString()&#43; &quot;<br>&quot;;//获取IIS下所有站点名称
                HostInfo &#43;= &quot;启用默认文档:&quot; &#43; EnableDeDoc &#43; &quot;<br>&quot;;
                HostInfo &#43;= &quot;默认文档:&quot; &#43; DefaultDoc &#43; &quot;<br>&quot;;
                HostInfo &#43;= &quot;最大连接:&quot; &#43; MaxConnections &#43; &quot;<br>&quot;;
                HostInfo &#43;= &quot;连接超时:&quot; &#43; ConnectionTimeout &#43; &quot;<br>&quot;;
                HostInfo &#43;= &quot;最大绑定数:&quot; &#43; MaxBandwidth &#43; &quot;<br>&quot;;
                HostInfo &#43;= &quot;运行状态:&quot; &#43; ServerState &#43; &quot;<br><br>&quot;;
            }
        }
        Response.Write(HostInfo);
        Response.End();
    }

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139391-1-1.html 上篇帖子: IIS中限制访问IP设置方法 下篇帖子: WCF部署到IIS上之后log4net不记录日志的解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表