Nhibernate SessionScopeWebModule在哪里?

Nhibernate SessionScopeWebModule在哪里?,nhibernate,activerecord,castle-activerecord,Nhibernate,Activerecord,Castle Activerecord,我正在尝试在我的WCF应用程序中为每个请求设置活动记录web会话。我在我的web.config中包含了以下内容: <httpModules> <add name="ar.sessionscope" type="Castle.ActiveRecord.Framework.SessionScopeWebModule, Castle.ActiveRecord" /> </httpModules> 但是

我正在尝试在我的WCF应用程序中为每个请求设置活动记录web会话。我在我的web.config中包含了以下内容:

<httpModules>
      <add
          name="ar.sessionscope"
          type="Castle.ActiveRecord.Framework.SessionScopeWebModule, Castle.ActiveRecord" />
    </httpModules>

但是它不起作用,它给了我一个错误:

无法从程序集“Castle.ActiveRecord”加载类型“Castle.ActiveRecord.Framework.SessionScopeWebModule”


SessionScopeWebModule是否被移动?我正在使用.NET 4的最新AR DLL。

请注意,即使web.config解决方案不起作用,但以下功能仍然有效:

public void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpContext.Current.Items.Add("ar.sessionscope", new SessionScope());
        }

        public void Application_EndRequest(object sender, EventArgs e)
        {
            try
            {
                var scope = HttpContext.Current.Items["ar.sessionscope"] as SessionScope;
                if (scope != null)
                    scope.Dispose();
            }
            catch (Exception ex)
            {
                HttpContext.Current.Trace.Warn("Error", "EndRequest: " + ex.Message, ex);
            }
        }

请注意,尽管web.config解决方案不起作用,但以下方法仍然有效:

public void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpContext.Current.Items.Add("ar.sessionscope", new SessionScope());
        }

        public void Application_EndRequest(object sender, EventArgs e)
        {
            try
            {
                var scope = HttpContext.Current.Items["ar.sessionscope"] as SessionScope;
                if (scope != null)
                    scope.Dispose();
            }
            catch (Exception ex)
            {
                HttpContext.Current.Trace.Warn("Error", "EndRequest: " + ex.Message, ex);
            }
        }

实际上,SessionScopeWebModule被转移到一个名为的单独项目中。这样做是为了在客户端配置文件目标中使用主Castle.ActiveRecord程序集

因此,添加对Castle.ActiveRecord.Web.dll的引用,并将配置中的类型更改为:

type="Castle.ActiveRecord.Framework.SessionScopeWebModule, Castle.ActiveRecord.Web"

实际上,SessionScopeWebModule被转移到一个名为的单独项目中。这样做是为了在客户端配置文件目标中使用主Castle.ActiveRecord程序集

因此,添加对Castle.ActiveRecord.Web.dll的引用,并将配置中的类型更改为:

type="Castle.ActiveRecord.Framework.SessionScopeWebModule, Castle.ActiveRecord.Web"