【问题标题】:How can i get the Physical path of a site in IIS using c#?如何使用 c# 在 IIS 中获取站点的物理路径?
【发布时间】:2020-08-16 23:19:24
【问题描述】:

当用户卸载应用程序时,我需要删除网站。我不知道站点名称,但物理路径将始终相同。那么有没有一种方法可以搜索返回的站点列表并检查特定的物理路径是否为某个值,我会知道那是站点并从中获取要删除的站点名称。 该站点的应用程序池是否在 taht 对象中?

我正在使用以下获取网站,

        var iisManager = new ServerManager();
        SiteCollection sites = iisManager.Sites;

或者有没有办法获得网站的“高级设置”?

【问题讨论】:

  • 站点根应用程序的根虚拟目录的物理路径就是你所需要的。将其转换为代码应该是显而易见的。

标签: c# iis


【解决方案1】:

我们在项目中添加Microsoft.Web.Administration.dll汇编文件后,请参考以下代码sn-ps。

var iismanager = new ServerManager();
            SiteCollection sites = iismanager.Sites;
            foreach (var site in sites)
            {
                Console.WriteLine($"WebSite Name: {site.Name}");

                ObjectState siteState = site.State;
                Console.WriteLine($"Running State: {siteState}");

                ApplicationCollection applications = site.Applications;
                foreach (Microsoft.Web.Administration.Application item in applications)
                {
                    string applicationPoolName = item.ApplicationPoolName;
                    Console.WriteLine($"ApplicationPoolName: {applicationPoolName}");
                    VirtualDirectoryCollection directories = item.VirtualDirectories;
                    foreach (var directory in directories)
                    {
                        Console.WriteLine($"PhysicalPath: {directory.PhysicalPath}");
                    }
                }
                Console.WriteLine("-------------------------------");
            }

另外,这里是IIS管理器的详细使用。
https://johnlnelson.com/2014/06/15/the-microsoft-web-administration-namespace/

Microsoft.Web.Administration dll 允许我们执行 IIS 管理任务。它包含一系列方便的顶级对象,例如站点、应用程序、应用程序池、应用程序域、虚拟目录和工作进程。我们可以使用 API 来获取和处理这些对象的配置和状态,并执行诸如创建站点、启动或停止站点、删除应用程序池、回收应用程序池、结束甚至卸载应用程序域等操作。
https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration?view=iis-dotnet

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多