【发布时间】:2015-11-14 10:01:04
【问题描述】:
我的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) 尝试运行此代码时出现错误:“文件名: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中当前应用池的名称和名称并回收呢?
作为旁注,我在 Application_EndRequest 中的 Global.asax 中执行此操作,在 Flushing 当前的 Response 之后。有没有更好的办法?
【问题讨论】:
-
您是否尝试在 Azure Web 应用中使用 MWA?
-
我猜是的?我只是想让这个工作......
-
Azure Web 应用程序试图对您隐藏后端基础设施,因此我认为它们不会让您访问所有 MWA API 访问权限(它们不应该因为您的调用可能会破坏其他应用程序) .
-
好的,那我该如何重启我自己的应用池呢?
-
为什么需要回收池?这才是你真正想要解决的问题,对吧?
标签: c# asp.net-mvc azure asp.net-web-api2 application-pool