我在我的静态助手类中创建了这些属性。
private static ServerManager IISServerManager
{
get
{
if (mIISServerManager== null)
{
mIISServerManager= new ServerManager();
}
return mIISServerManager;
}
}
private static SiteCollection Sites
{
get
{
try
{
return IISServerManager.Sites;
}
catch (Exception)
{
return null;
}
}
}
当我调用 Helper 方法时
public static bool VirtualDirectoryExists(string dirName, string siteName)
{
if (!String.IsNullOrEmpty(dirName) && (Sites != null))
{
Site site = Sites[siteName];
...
在使用此帮助程序的代码中(在主线程中),它会正确检索所有站点及其属性。
另一方面,当我在使用此帮助程序的代码中调用它时(在后台工作线程中)检索 SitesCollection,但代码在使用索引器 [siteName] 获取站点时冻结
Site site = Sites[siteName];
(看起来像死锁,但我这边没有锁定)