如何检查IIS或ASP.NET工作进程是否已自动重新启动我的网站?

时间:2012-05-16 13:59:34

标签: asp.net iis tracking

我想知道我是否可以跟踪这个,因为如果经常发生这种情况,我想知道它的根本原因。是否有可用于在IIS中重新启动我的站点的时间戳记日志,如何以编程方式跟踪?

感谢所有人。

2 个答案:

答案 0 :(得分:3)

在Global.asax上

void Application_Start(object sender, EventArgs e) 

void Application_End(object sender, EventArgs e) 
应用程序启动和结束时调用

。您可以使用它们来记录它。现在要知道为什么你的游泳池正在重新启动你可以简单地检查游泳池的设置,你可能已经设置了很多原因,也许你已经设置了时间限制,可能是内存限制,也许是其他设置...你可以查看他们并改变他们。

答案 1 :(得分:2)

您可以在Global.asax Application_End中记录应用程序重启的原因:

protected void Application_End(object sender, EventArgs e)
{
  HttpRuntime runtime = (HttpRuntime)typeof(System.Web.HttpRuntime).InvokeMember("_theRuntime", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetField, null, null, null);

  string shutDownMessage = "";

  if (runtime != null)
  {
    shutDownMessage = Environment.NewLine + "Shutdown: " +
                      (string)runtime.GetType().InvokeMember("_shutDownMessage", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, null, runtime, null) + 
                      Environment.NewLine + "Stack: " + Environment.NewLine +
                      (string)runtime.GetType().InvokeMember("_shutDownStack", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, null, runtime, null);
  }
}