How to get the IIS virtual dir & web application's physical paths with C# code?

后端 未结 3 1816
你的背包
你的背包 2020-12-06 03:41

I am writing a web application deployment verification tool and I need to check the physical folder structures of Web Applicatons and Virtual Folders.

How can this

相关标签:
3条回答
  • 2020-12-06 04:23

    I would strongly suggest using the Microsoft.Web.Administration dll for superb admin features with IIS.

    ServerManager serverManager = new ServerManager();
    
    // get the site (e.g. default)
    Site site = serverManager.Sites.FirstOrDefault(s => s.Name == "Default Web Site");
    // get the application that you are interested in
    Application myApp = site.Applications["/Dev1"];
    
    // get the physical path of the virtual directory
    Console.WriteLine(myApp.VirtualDirectories[0].PhysicalPath);
    

    Gives:

    F:\Dev\Branches\Dev1

    0 讨论(0)
  • 2020-12-06 04:33

    You can do this kind of thing using WMI:

    Using WMI to configure IIS.

    Administering IIS programatically.

    And you can use WMI from C# (google for "WMI C#").

    So, yes, this is possible.

    0 讨论(0)
  • 2020-12-06 04:39

    Take a look at the HttpRequest object. You can get the current URL using HttpContext.Current.Request.Url.

    If you wanted to check that a virtual IIS folder existed you could try performing a Server.MapPath call to the relative URL you expect to exist (again you'll find this in the HttpContext object) and if the mapping is not successful you could then assume that a specific subfolder as specified by your relative path does not exist.

    0 讨论(0)
提交回复
热议问题