У меня есть объект context, который связывает себя с HttpContext.Items через статическое свойство Current. Этот объект может использоваться напрямую через построители выражений и элементы управления, все они являются частью одной и той же библиотеки.
Проблема, с которой я сталкиваюсь, заключается в том, что я хочу избавиться от его управляемых ресурсов (клиентов WCF), когда запрос заканчивается без использования HttpModule (поскольку в противном случае он не нужен). Я реализовал полностью одноразовый шаблон (с Finaliser), но вы не можете полагаться на своевременное завершение экземпляров GC.
Я пытался подписать статический метод на HttpApplication.EndRequest (также PostRequestHandlerExecute) в конструкторе объектов (с блокировкой, чтобы гарантировать, что это происходит только один раз), но событие никогда не отправляется. Вероятно, это связано с тем, что изменяется экземпляр HttpApplication, хотя я не совсем уверен.
Есть какие-нибудь мысли о том, как лучше решить эту проблему?