首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate在Mono上运行ASP.NET MVC 3 web应用程序

NHibernate在Mono上运行ASP.NET MVC 3 web应用程序
EN

Stack Overflow用户
提问于 2013-08-23 09:25:58
回答 1查看 657关注 0票数 2

我对Mono上的NHibernate (UbuntuServer13.04)有问题。

单一版本:

代码语言:javascript
复制
Mono JIT compiler version 3.2.1 ((no/f3f789e Wed Aug 21 17:40:25 UTC 2013)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug
    LLVM:          supported, not enabled.
    GC:            sgen

我明白这一例外:

代码语言:javascript
复制
System.InvalidProgramException
Invalid IL code in System.Data.Common.DbProviderFactories:GetFactory (string): method body is empty.

详细信息:

代码语言:javascript
复制
Non-web exception. Exception origin (name of application or object): NHibernate.

异常堆栈跟踪:

代码语言:javascript
复制
at NHibernate.Driver.ReflectionBasedDriver..ctor (System.String providerInvariantName, System.String driverAssemblyName, System.String connectionTypeName, System.String commandTypeName) [0x00000] in <filename unknown>:0 
at NHibernate.Driver.NpgsqlDriver..ctor () [0x00000] in <filename unknown>:0 
at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 

得到异常的代码如下所示:

代码语言:javascript
复制
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);

        //NpgsqlEventLog.Level = LogLevel.Debug;
        //NpgsqlEventLog.LogName = "NpgsqlTests.LogFile"; 

        SessionFactory = Fluently.Configure().Database(FluentNHibernate.Cfg.Db.PostgreSQLConfiguration.Standard.
            ConnectionString(c =>
                c.Host("localhost")
                .Database("newtest")
                .Username("postgres")
                .Password("******")
                .Port(5432)
            )).Mappings(m =>
            m.FluentMappings.AddFromAssemblyOf<Entity>())
            .ExposeConfiguration(c => c.SetProperty("current_session_context_class", "web"))
            .BuildSessionFactory();
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-24 06:58:41

我通过删除Web.Config文件中不需要的引用来解决我的问题。实体框架仍然有一个配置部分,即使我已经用NuGet删除了它。

当所有这些不需要的dll引用在Web.Config中被删除时,这个项目就像它在mono环境中应该运行的那样运行,所以我在初始条目中提到的错误有点误导,因为这些问题与NHibernate无关。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18399355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档