asp.net-mvc-3 – Application_End被过早/经常调用
我在Application_End上部署的项目中使用临时数据库:
protected void Application_End() { if (_db != null) _db.Dispose(); } 问题是Application_End似乎经常在浏览我的web项目时被调用 – 似乎当我编辑db中的对象时,更改成功,数据库被处理,并且当我被重定向到索引 – 已创建新数据库并显示未更改的对象,就好像什么都没发生一样. 不应该在会话结束时或在一定的空闲时间之后调用Application_End吗? 谁能告诉我如何才能确保只在我实际使用完应用程序时调用Application_End? 解决方法
卸载AppDomain时会发生这种情况.在您进行调试时,每次重新编译项目时都会发生这种情况,这是正常的,因为每次重新编译bin文件夹中的程序集时都会重新生成,ASP.NET只会回收应用程序域. 当您在IIS中部署应用程序时,只有在IIS决定回收应用程序时才会发生这种情况.它可能发生在不同的情况下:一段时间不活动,达到CPU /内存阈值,……
不,Application_End与用户会话无关.它在应用程序域的生命周期结束时调用.
就是这种情况:当应用程序域准备好卸载时,ASP.NET运行时调用Application_End. 因此,如果您想避免这种情况发生,您应该使用持久数据库而不是内存存储.如果您使用内存存储,那么您与应用程序的生命周期紧密相关,因为您已经注意到它可能非常短. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 只能访问localhost上的asp.net应用程序
- ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递
- asp.net – 在Visual Studio Ultimate中找不到打开的网站
- asp.net-mvc – 使用Ajax.BeginForm绑定HttpPostedFileBase
- asp.net-mvc – 有没有人使用史蒂夫·桑德森的MvcIntegrati
- asp.net-mvc-3 – MVC 3客户端验证,模型绑定十进制值和文化
- asp.net – 如何在IIS上配置Web部署发布功能,以便开发人员可
- asp.net-ajax – Ajax脚本管理器和母版页
- asp.net – 在Web部署之外应用Web.Config转换
- 甜甜圈缓存是否正常使用ASP.NET MVC?