Nhibernate SessionScopeWebModule在哪里?
我正在尝试在我的WCF应用程序中为每个请求设置活动记录web会话。我在我的web.config中包含了以下内容: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> 但是
<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"