【问题标题】:what is the best Session management opt ion for Asp.net mvc - wcf - BLL - Nhibernate repositoryAsp.net mvc - wcf - BLL - Nhibernate 存储库的最佳会话管理选项是什么
【发布时间】:2023-04-01 18:39:01
【问题描述】:

我有一个包含以下层(或 c# 项目)的应用程序架构。

  1. Web 前端 (asp.net mvc2)
  2. 服务层(普通c#类库)
  3. 模型层(具有实体、服务和存储库接口的普通 c# 类库)
  4. 数据层(实现 BLL 中定义的存储库接口并使用 NHibernate)

ISession 根据 http 请求打开并且工作正常。

现在,我想在我当前的服务层之上添加 wcf 层。 wcf 项目直接调用原始服务层类。但是一旦我这样做,asp.net 上的会话/会话工厂就变得不可用/不可用。看起来,wcf 运行在与 asp.net 完全不同的上下文中。因此,我想将初始化会话工厂和会话管理的逻辑移至 wcf。我该怎么做?甚至在此之前这是一个好习惯吗?我想添加 wcf 的原因之一是因为我想将操作公开给其他应用程序(可能不是基于 http)。

任何帮助、博客文章或书籍参考将不胜感激。

【问题讨论】:

    标签: asp.net wcf nhibernate asp.net-mvc-2 architecture


    【解决方案1】:

    使用 NHibernate 会话的 Per-call 实例化。检查this article。它解释了如何创建将 Session 附加到当前实例上下文的属性。

    【讨论】:

    • 谢谢拉迪斯拉夫。这对我帮助很大。这不完全是我想要的方式,但我也不知道替代方案。再次感谢。
    【解决方案2】:

    您可能希望 WCF 在与 asp.net 相同的上下文中运行...试试这篇文章: http://msdn.microsoft.com/en-us/library/aa702682.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 2010-09-26
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多