如何检测当前应用程序池是否在IIS7.5和Asp.Net 3.5中清理
|
好的 – 正如问题主题所述 – 关于你如何做这个的任何想法? 我一直在看System.Web.Hosting中的对象,但没有什么是突出的. 原因?我正在收到一个或两个应用程序错误,这些错误通常在回收期间发生(它们发生在大约25个小时,我已经将我的应用程序池的回收时间设置为默认值),所以我想知道他们是否在线程正在关闭的池中,或正在开始(ed / ing)的池中. 解决方法我最近偶然发现了 this article on Brain.Save(),从主持WCF(他是史蒂夫·缅因州 – 连接的服务部门的雷德蒙德的项目经理)的角度来说,正是这个问题.当WCF服务托管在Asp.Net中时,他们需要能够执行此操作,因为它们需要能够关闭所有打开的监听器,以便新的应用程序域中的WCF引擎将能够再次打开它们. 正如文章所示,答案是实现IRegisteredObject interface,调用ApplicationManager.CreateObject来创建一个对象的实例,然后将其注册到HostingEnvironment.RegisterObject(在MSDN文档中详细介绍了该接口). 当该对象的IRegisteredObject.Stop(bool)实现被调用为false作为参数时,这是通知应用程序域被关闭,并且该对象应该被注销(类似于全局处理),并调用HostingEnvironment. UnregisterObject. 当它被称为真实的时候,这意味着你没有及时取消注册,如果你不立即注销,那将是为你完成的. 我可以使用这个机制找出当发生异常时,如果AppDomain被杀死了.抛出异常的对象的性质意味着如果它不在关闭状态,则必须在初始启动期间. 然而,同样地,我可能会开始关注这种持久性机制,以便我的一些其他更复杂的静态信息! 历史 本文还解释了为什么要在global.asax中使用IRegisteredObject而不是Application_Start和Application_End方法的一些历史和理由:
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.Net MVC中使用System.Guid作为主键?
- asp.net – 什么时候Response.IsClientConnected慢?
- asp.net – 有人有一种方法来保持页面呈现一旦一个人已退出
- asp.net 根据汉字的拼音首字母搜索数据库(附 LINQ 调用方法
- asp.net-core – 找不到Swashbuckle.AspNetCore SwaggerOpe
- ASP.NET的登录控件问题
- asp.net-mvc – 禁用生产中的Glimpse和glimpse.axd
- asp.net – 在jQuery对话框中的窗体中,MVC中通常采用的方法
- 什么是ASP.NET WebForms相当于ASP.NET MVC的ViewData
- asp.net-mvc – 没有找到与名为“User”的控制器匹配的类型
