我有一个“上下文”对象,它通过静态 Current 属性将自身与 HttpContext.Items 联系起来。这个对象可以通过表达式构建器和控件直接使用,它们都是同一个库的一部分。
我遇到的问题是,当请求结束而不使用 HttpModule 时,我想处置它的托管资源(WCF 客户端)(因为否则不需要)。我已经实现了完整的一次性模式(使用 Finaliser),但是您不能及时依赖 GC 终结实例。
我试图在对象构造函数中为 HttpApplication.EndRequest(也是 PostRequestHandlerExecute)订阅一个静态方法(锁定以确保它只发生一次),但该事件永远不会被调度。这可能是因为 HttpApplication 的实例发生了变化,尽管我不完全确定。
关于解决这个问题的最佳方法有什么想法吗?