0

我在 Windows 服务上使用 Castle windsor 自行托管我的 WCF 服务。在此之前,我将它们托管在 IIS 上,并将我的存储库对象(遵循存储库模式,使用 EF 5.0 作为 ORM)注册为 PerWebRequest。它在 IIS 上托管时工作,因为我能够在 Web.Config 文件中添加以下行 -

  <system.webServer>
  <modules>
     <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
  </modules>

但现在这是自我托管。我无法添加上述模块。我认为这是在 WCF 服务中使用 PerWebRequest for Repositories 的推荐方法,否则它可能会产生上下文和事务问题。那么有没有其他类似于 PerWebRequest 的生活方式可以让我在进行自我托管时使用?或者请告知我的假设是否错误?

提前致谢

更新

我测试了将存储库作为瞬态生活方式注册到容器中,但插入或更新失败。因为每次它从容器中请求对象时,它都会返回一个新对象,所以基本上失去了我的 DbContext 对象。有没有人和我遇到过类似的问题?

4

1 回答 1

0

你看过内置的WCF 设施生活方式吗?

于 2013-07-24T22:08:07.460 回答