我在Windows服务上使用Castle windsor自我托管我的WCF服务。在此之前,我在IIS上托管它们,我正在注册我的Repository对象(遵循作为ORM的EF 5.0的存储库模式)作为PerWebRequest。它在IIS上托管时工作,因为我能够在Web.Config文件中添加以下行 -
<system.webServer>
<modules>
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
</modules>
但现在这是自我托管。我无法添加上面的模块。我假设它是在WCF服务中使用PerWebRequest for Repositories的推荐方法,否则它可能会产生上下文和事务的问题。那么有什么其他的生活方式类似于PerWebRequest,我可以在进行自我托管时使用?或者请告知我的假设是否错误?
提前致谢
西
更新
我测试了存储库作为Transient lifetstyle注册到容器,并且插入或更新失败。因为每次它从容器请求对象时它返回一个新对象,所以基本上我正在丢失我的DbContext对象。有没有人像我一样遇到过类似的问题?