代码之家  ›  专栏  ›  技术社区  ›  Søren Spelling Lund

从获取ASP的IIS站点名称。NET网站

  •  56
  • Søren Spelling Lund  · 技术社区  · 16 年前

    6 回复  |  直到 6 年前
        1
  •  59
  •   m3kh    16 年前

    更新

    HostingEnvironment.SiteName GetSiteName

    System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName();
    
        2
  •  19
  •   Jan Köhler    12 年前

    正如@belugabob和@CarlosAg已经提到的,我宁愿使用 System.Web.Hosting.HostingEnvironment.SiteName 而不是 System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName() 因为IApplicationHost。GetSiteName方法不打算直接调用! ( msdn )

    msdn )

        3
  •  11
  •   Community Mohan Dere    9 年前

    related post 在检索站点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");
      }
    

    }

    original post .

        4
  •  9
  •   ntze    16 年前

    ServerManager ( 微软。网状物。行政 )它提供对IIS 7.0配置系统的读写访问。

    // 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
    }
    

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

    :微软。网状物。行政工作 .

    对于IIS6,您可以使用ADSI和WMI来实现这一点,但我建议您使用比ADSI更快的WMI。如果使用WMI,请查看 WMI Code Creator 1.0 (免费/由微软开发)。它将为您生成代码。

        5
  •  0
  •   pungggi    15 年前

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

    see msdn help

        6
  •  0
  •   Sachin Bhale    11 年前

    您可以使用以下代码

    private string WebsiteName()
    {
        string websiteName = string.Empty;
        string AppPath = string.Empty;
        AppPath = Context.Request.ServerVariables["INSTANCE_META_PATH"];
        AppPath = AppPath.Replace("/LM/", "IIS://localhost/");
        DirectoryEntry root = new DirectoryEntry(AppPath);
        websiteName = (string)root.Properties["ServerComment"].Value;
        return websiteName;
    }