如何通过程序获取当前IIS应用程序池的名称,而不是ActiveDirectory
本文关键字:ActiveDirectory 程序池 应用程序 获取 程序 何通过 应用 IIS | 更新日期: 2023-09-27 18:21:50
我的Web API
遇到了这样一种情况,我现在唯一能想到的选择就是recycle
和app pool
,同时深入研究并找出问题的真正原因。同时,在满足条件后,我需要一种方法来recycle
和app pool
。我想我在这里找到了解决方案:http://www.codeproject.com/Tips/780076/Recycle-Application-Pool-s-in-IIS-Server-Using-C
// Needs Microsoft.Web.Administration NuGet
public static void RecycleAppPool()
{
ServerManager serverManager = new ServerManager();
ApplicationPool appPool = serverManager.ApplicationPools["Test_AppPool"];
if (appPool != null)
{
if (appPool.State == ObjectState.Stopped)
{
appPool.Start();
}
else
{
appPool.Recycle();
}
}
}
这有两个问题:
1) 我在尝试运行以下代码时遇到错误:"Filename:redirection.config错误:由于权限不足,无法读取配置文件"我在localhost中遇到了此错误,但我想我也会在托管的Azure
环境中遇到此错误?我能绕过这个吗?
2) 第二个问题是,我可能不知道应用程序池的名称是什么,所以我需要用程序来弄清楚。我发现了这样的东西:http://www.logue.com.ar/blog/2008/02/find-and-recycle-current-application-pool-programmatically-for-iis-6/但它使用ActiveDirectory
,并且我在主机上没有AD
的登录详细信息。。。至少我不知道。。。它再次托管在Azure网站中。
所以问题是,我如何获得Azure
中当前应用程序池的名称和名称并回收它?
顺便说一句,我在Flush
和当前Response
之后的Application_EndRequest
中的Global.asax
中这样做。有更好的方法吗?
到目前为止,我能找到的最接近的是(在这里找到:https://stackoverflow.com/a/1081902/550975)
HttpRuntime.UnloadAppDomain();
它只是重新启动app
而不是app pool
。然而,这可能符合我的目的。。。我们拭目以待。我仍然希望有人能得到真正的答案,如果发生这样的事情,我会把它标记为"接受的答案"。