如何解决如何使用c#获取IIS中站点的物理路径?
当用户卸载应用程序时,我需要删除一个站点。我不知道站点名称,但是物理路径将始终相同。因此,有没有一种方法可以搜索返回的站点列表,并检查特定的物理路径是否为某个值,因此我将知道该站点,并从中获取要删除的站点名称。 该网站的应用程序池是否在对象中?
我正在使用以下工具来获取网站,
var iisManager = new ServerManager();
SiteCollection sites = iisManager.Sites;
或者是否可以获取网站的“高级设置”?
解决方法
将Microsoft.Web.Administration.dll
程序集文件添加到项目后,请参考以下代码段。
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。