Castle windsor - 在WCF服务中创建和处置容器

时间:2011-09-02 09:35:41

标签: wcf castle-windsor castle

我计划在WCF层实施Castle windsor,这是一个ASP.Net项目。当我查看Castle windsor的文档时,据说我们只需要创建一次容器并在使用后将其丢弃。所以在我的场景中我需要在WCF中创建容器。我最初想把它放在global.asax.vb中的Application_start上并将它放在Application_End中,但是当App pool循环或iis重启等时会调用application_end。

所以我想到的第二件事是Session_start和Session_end。会话结束再次仅适用于Inproc类型。此外,它可能仅在一定量的空闲时间后才被调用。

第三个选项是调用每个方法来创建实例并在每个方法之后关闭它。根据我所知,这是不可取的。

那么请你建议哪种方式最好。

提前致谢 西

1 个答案:

答案 0 :(得分:2)

通常每个应用程序生命周期只配置一次IOC容器,在Application_Start()中执行此操作似乎非常合理。为每个新会话或每个请求重新配置它可能只是做了不必要的工作;另外,我怀疑这可能会损害表现。

我认为Application_Start() / Application_End()方法没有任何问题。如果你担心它可能会泄漏资源或类似的东西,那么这些恐惧是没有道理的。