首页 > 解决方案 > SessionFactory“未通过数据库方法配置数据库”

问题描述

我正在尝试使用 Visual Studio Community 2015 在 IIS 10 上部署 API 应用程序,当我尝试发布它时出现此错误:

"创建 SessionFactory 时使用了无效或不完整的配置。有关详细信息,请检查 PotentialReasons 集合和 InnerException。\r\n\r\n * 未通过数据库方法配置数据库。\r\n"

我从这里下载了源代码。

这是我在 Web.config 中的休眠配置:

 <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>      
      <property name="connection.connection_string">Data Source=DEV01\SQLEXPRESS;Initial Catalog=ACCEPT_DB;Integrated Security=True</property>
      <property name="adonet.batch_size">10</property>
      <property name="show_sql">true</property>
      <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>      
      <property name="command_timeout">60</property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>     
    </session-factory>
  </hibernate-configuration>

这里是 NHibernateSessionFactory:

private NhibernateSessionFactory()
{
    var baseConfig = new Configuration();
    baseConfig.Configure();

    //having one mapping class path is enough.
    var config = Fluently.Configure(baseConfig).Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMap>()).Mappings(m => m.FluentMappings.AddFromAssemblyOf<RoleMap>()).ExposeConfiguration(cfg => cfg.Properties.Add("use_outer_join", "true"));

    try
    {
        if (System.Configuration.ConfigurationManager.AppSettings["DbSchemaDrop"].CompareTo("1") == 0)
            config.ExposeConfiguration(cfg => new SchemaExport(cfg).Drop(false, true));
        if (System.Configuration.ConfigurationManager.AppSettings["DbSchemaCreate"].CompareTo("1") == 0)
            config.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(false, true));
        if (System.Configuration.ConfigurationManager.AppSettings["DbSchemaUpdate"].CompareTo("1") == 0)
            config.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true));
    }
    catch (Exception e)
    {
        throw (e);
    }

    SessionFactory = config.BuildSessionFactory();                     
}

我查看了在 Internet 上可以找到的所有其他解决方案,但没有找到可以解决我的问题的方法。我也看不到任何 InnerExceptions ......

有没有人有解决这个问题的方法?

谢谢!

标签: c#.netsql-servervisual-studioiis-10

解决方案


推荐阅读