我正在使用 Castle Windsor 将依赖项注入到多个 WCF 服务中。我们还使用 Castle.Facilities.WcfIntegration.DefaultServiceHostFactory 和城堡的 wcfFacility。我们的服务托管在 IIS 中,这使我可以访问 Global.aspx 事件。我们所有的组件都在瞬态生命周期中注册。目前我在 application_start 事件期间注册容器中的所有组件,然后在 application_end 中处理容器。
但是,在阅读了几个博客和一些 SO 帖子后,我开始担心我的解决方案有漏洞。换句话说,我认为在 application_end 释放容器会导致内存从我的应用程序中慢慢泄漏。我正在考虑在 request_start 和 request_end 或mabye session_start 和 session_end 事件中注册和释放。我遇到的问题是我不知道在哪里“保留”容器,所以我可以在会话或请求结束后释放它。有没有人遇到过这个问题?如果是这样,你是如何解决的?我的解决方案听起来对吗?