我遇到了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
中获取名称和当前应用程序池并回收它?
作为旁注,我在Global.asax
Application_EndRequest
之后的Flush
Response
中执行此操作。还有更好的方法吗?
答案 0 :(得分:0)
到目前为止,我能找到的最近的是(在这里找到:https://stackoverflow.com/a/1081902/550975)
HttpRuntime.UnloadAppDomain();
只是重新启动app
,而不是app pool
。然而,这可能符合我的目的......我们会看到。我仍然希望有人得到实际的答案,如果发生这样的事情,我会将其标记为已接受的答案。