加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在请求结束前触发Application_EndRequest?

发布时间:2020-12-16 06:31:46 所属栏目:asp.Net 来源:网络整理
导读:我有一些简单的类需要在请求结束时处理. 为此,我在Global.asax中的Application_EndRequest事件中对这些对象调用Dispose方法. 这“在我的机器上工作正常”但在我的生产服务器上导致一些问题我无法访问已处理的对象.这在一些MVC助手中发生. 在我看来,Applicati
我有一些简单的类需要在请求结束时处理.

为此,我在Global.asax中的Application_EndRequest事件中对这些对象调用Dispose方法.

这“在我的机器上工作正常”但在我的生产服务器上导致一些问题我无法访问已处理的对象.这在一些MVC助手中发生.

在我看来,Application_EndRequest在请求结束时被触发.这不是这种情况吗?我应该用另一个事件处理我的物品吗?

解决方法

应用程序池问题 – 可能

我怀疑你的一次性对象不是请求而是应用范围(它可以根据请求实例化,但可能使用一些共享资源).只要您在开发环境中测试应用程序,它似乎就像预期的那样行事,但只要您将其投入生产就会出现问题.这表示您可能遇到应用程序池问题.

IIS Web应用程序池功能实际上为您的应用程序实例化了几个HttpApplication实例,它们可能都共享公共可用资源.如果您的一次性物品就是这种情况并且您正在共享它,则可能是它不是线程安全的.如果不将共享资源使用包装在线程安全操作中,情况也是如此.

这就是为什么当一个请求正在进行时,另一个请求开始并且第一个处理该对象而第二个进程仍在使用它时可能发生这种情况.

更多信息总是有帮助的

如果您解释一次性物体/资源的性质以及您在应用程序中如何使用它,我们可以更好地帮助您.但与此同时,您可以read my blog post讨论应用程序池并处理它们.这不是关于一次性物品本身,但您仍然可以发现所有信息非常有用和有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读