获取从 asp.net 网站的 IIS 站点名称

http://www.itstrike.cn/Question/2f5fcede-15e3-4fdc-a8a5-23a4eb265716

获取从 asp.net 网站的 IIS 站点名称

在我的 asp.net 中它创建在 IIS 中,这是唯一到服务器的时候,就会给我想查找该名称的 web 应用程序。我不会感兴趣,但实际的名字在 IIS 中的站点的 web 站点的域名。

我必须要能够可靠地做这事的 IIS6 和 7。

要弄清楚我说给定的名称,在 IIS、 而不是域名和不是虚拟目录的路径。

Value from IIS I'd like to read from C#

解决方法 1:
System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName();
解决方法 2:

这里是一个 帖子相关 检索站点 id。

这里的一些代码,可能会为您的工作:

using System.DirectoryServices;
using System;

public class IISAdmin
{
   public static void GetWebsiteID(string websiteName)
   {
      DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc");

     foreach(DirectoryEntry de in w3svc.Children)
     {
        if(de.SchemaClassName == "IIsWebServer" && de.Properties["ServerComment"][0].ToString() == websiteName)
        {
           Console.Write(de.Name);
        }

     }

  }
  public static void Main()
  {
     GetWebsiteID("Default Web Site");
  }

}

这里是 原始的帖子的链接。

我不确定它将致力于 IIS7,但如果您为它应该工作的 IIS7 安装 IIS6 兼容组件。

解决方法 3:

您正在寻找 ServerManager (Microsoft.Web.Administration) 提供的读取和写入访问,IIS 7.0 配置系统。

循环访问 Microsoft.Web.Administration.SiteCollection、 获取对您的网站使用站点对象的引用,并读取名称属性的值。

// Snippet        
using (ServerManager serverManager = new ServerManager()) { 

var sites = serverManager.Sites; 
foreach (Site site in sites) { 
         Console.WriteLine(site.Name); // This will return the WebSite name
}

您还可以使用 LINQ 查询 ServerManager.Sites 集合 (请参见下面的示例)

// Start all stopped WebSites using the power of Linq :)
var sites = (from site in serverManager.Sites 
            where site.State == ObjectState.Stopped 
            orderby site.Name 
            select site); 

        foreach (Site site in sites) { 
            site.Start(); 
        }

 : Microsoft.Web.Administration 仅 IIS7的工作。

IIS6,您可以使用 ADSI 和 WMI 这样做,但我建议你去为 WMI ADSI 比快。如果使用 WMI,我们看看 WMI 代码创建者 1.0 (免费 / 发达的 Microsoft)。它将为您生成的代码。

禾田

解决方法 4:

这篇文章为您提供了了解如何,您可以检索 IIS 信息并创建网站/虚拟目录。

创建一个网站,以编程方式使用 C# 应用程序池

解决方法 5:

您需要先做 ServerManager.OpenRemote("serverName"),当连接到远程服务器。

它的基本做法这样的

            using (ServerManager srvMgr = ServerManager.OpenRemote("serverName"))
            {

            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值