C# 在asp.net应用程序上,未更新中的结束页视图计数数据

C# 在asp.net应用程序上,未更新中的结束页视图计数数据,c#,asp.net,.net,ado.net,C#,Asp.net,.net,Ado.net,我有asp.net应用程序。我将强制结束此应用程序,并在此期间更新数据库中的查看页面计数值。如果有人认识,请帮帮我。 我还在global.asax文件中编写了代码 void Application_End(object sender, EventArgs e) { // Code that runs on application shut`enter code here`down } 但当我强制终止应用程序时,这不起作用 如果数据对您很重要,我认为在退出时尝试保存数据不是一个好主意 如果

我有asp.net应用程序。我将强制结束此应用程序,并在此期间更新数据库中的查看页面计数值。如果有人认识,请帮帮我。 我还在global.asax文件中编写了代码

void Application_End(object sender, EventArgs e)
{
   // Code that runs on application shut`enter code here`down
}

但当我强制终止应用程序时,这不起作用

如果数据对您很重要,我认为在退出时尝试保存数据不是一个好主意

如果仍要尝试并使用.NET Framework 4.5.1,则可以侦听事件,该事件在应用程序关闭挂起时触发:

void Application_Start(object sender, EventArgs e)
{
    HostingEnvironment.StopListening += (o, args) => SaveTheDataHere();
}
如果托管环境有序关闭,而不是突然崩溃,这将保存数据

不用说,如果服务器机房发生火灾、BSOD停止操作系统、有人被电源线绊倒等情况,这不会发生

更好的方法是立即或定期(取决于我可接受的潜在数据丢失程度)将访问事件(计数)卸载到一些具有容错能力的外部进程,例如消息队列。

我得到了答案

void Application_End(object sender, EventArgs e)
{
   // Code that runs on application shut`enter code here`down
}
此事件仅在以下情况发生时有效,然后触发

  • 更新web.config

  • 更新BIN中的dll文件

  • 停止或重新启动IIS

  • 应用程序池回收


  • 因此,我为此实现了一个web服务,以便定期更新数据库中的记录。

    尝试使用
    Application\u Disposed
    事件。我希望在应用程序强制结束时更新页面视图计数器数据,并在应用程序正常结束时触发Application\u事件。我想在这两种情况下更新数据,要么应用程序优雅地结束,要么强制结束尝试将该代码放入
    应用程序_Disposed
    事件中,然后检查当应用程序被强制关闭时是否触发该代码。可能此链接将帮助您,www.aspdotnet-suresh.com/2011/05/what-is-use-of-globalasax-file-in.htmlHi Matt,我试过处理应用程序,但也没用。