会话工厂已使用nhibernate.current_session的密钥进行配置

时间:2009-08-13 14:28:38

标签: asp.net-mvc nhibernate s#arp-architecture

注意:我也在精彩架构的谷歌群组上发布了这个。

描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。

异常详细信息:SharpArch.Core.PreconditionException:一个会话 工厂已经配置了密钥 nhibernate.current_session

来源错误:

第49行:base.Init(); 第50行: 第51行:NHibernateSession.Init(新的WebSessionStorage (这个), 第52行:new string [] {Server.MapPath(“〜/ bin / GCBA.Data.dll“)}); 第53行:}

源文件:C:\ Users \ Matt \ Desktop \ Matt \ GCBA \ GCBA \ GCBA.Web \ Global.asax.cs行:51

堆栈追踪:

[PreconditionException:已配置会话工厂 使用nhibernate.current_session]的键

SharpArch.Core.Check.Require(布尔断言,字符串消息)in C:\的MyStuff \项目\ SharpArchitecture的\ src \ SharpArch \ SharpArch.Core \ DesignByContract.cs:62

SharpArch.Data.NHibernate.NHibernateSession.Init(ISessionStorage storage,String [] mappingAssemblies,AutoPersistenceModel autoPersistenceModel,String cfgFile,IDictionary`2 cfgProperties, String validatorCfgFile,IPersistenceConfigurer persistenceConfigurer) 在C:\ MyStuff \ Projects \ SharpArchitecture \ src \ SharpArch \ SharpArch.Data \ NHibernate的\ NHibernateSession.cs:70

SharpArch.Data.NHibernate.NHibernateSession.Init(ISessionStorage 存储,String [] mappingAssemblies)在C:\ MyStuff \ Projects中 \ SharpArchitecture的\ src \ SharpArch \ SharpArch.Data \ NHibernate的 \ NHibernateSession.cs:26

GC:\ Users \ Matt \ Desktop \ Matt \ GCBA中的GCBA.Web.MvcApplication.Init() \ GCBA \ GCBA.Web \ Global.asax.cs中:51

System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState状态,MethodInfo []处理程序)+335


这是我试图从IIS7运行的错误...我可以正常运行它 好像出了VS2008卡西尼......所以我不确定是什么问题 是的,我有S#arp和MVC.Net 1.0的7/16/2009主干构建。该 它失败的代码片段在global.asax.cs Init()中 方法。我真的很沮丧这个问题,因为我有 只发现了另外一篇关于此的帖子,它是在测试用例中, 我的地方实际上是试图从iis7和所有网站运行网站 我的测试通过了。

如果有人知道可能导致此问题的原因,那就是 太好了谢谢。

3 个答案:

答案 0 :(得分:1)

我最近遇到了同样的问题。我使用了S#arp arch但使用了一个普通的asp.net网站项目(集成在cms中)。对我来说,整个问题是Global.asax不会触发未知的文件类型或虚拟URL。我通过编写自己的HttpModule并单独加载它来解决它,这有副作用,即使有人只提取图像,NHibernate也会启动。但对我来说这不是一个问题。

希望这能让你朝着正确的方向前进......

答案 1 :(得分:0)

这听起来似乎没有为ASP.NET MVC正确配置IIS7。 See if this post on SO可帮助您使用ASP.NET MVC设置IIS7。我也在使用SharpArchitecture,在IIS7以“集成”模式运行后,解决了很多问题。

答案 2 :(得分:0)

可能是线程问题?

您是否在应用初始化中尝试过类似的内容:

private static bool haveInit
if (!haveInit)
{
    lock (@lock)
    {
        if (!haveInit))
        {
            NHibernateSession.Init(...);
            haveInit = true;
        }
    }
}