城堡Wcf设施自托管 - 存储库生活方式

时间:2013-07-24 09:15:45

标签: c#-4.0 castle-windsor repository-pattern self-hosting

我在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对象。有没有人像我一样遇到过类似的问题?

1 个答案:

答案 0 :(得分:0)

你看过内置的WCF Facility lifestyles吗?