0

我正在构建一个 asp.net mvc web 应用程序。我在 asp.net 上下文中运行石英。我正在为我的 or 映射使用流利的 nhibernate。我正在构建一个简单的工作,在数据库中写入一个条目。

    public void Execute(JobExecutionContext context)
    {

        ISession session = DataSourceConfiguration.GetSessionFactory().OpenSession();
        session.SaveOrUpdate(new JobLogEntry() { Created = DateTime.Now, Message = "Twitter feed read" });
        session.Close();
        session.Dispose();
    }

    public static ISessionFactory GetSessionFactory()
    {
        return Fluently.Configure()
          .Database(CurrentDataBaseConfiguration)
          .Mappings(m =>
            m.AutoMappings.Add(
              AutoMap.AssemblyOf<Entry>()
                .Where(t => t.Namespace == "QuickBlog.BlogModel.Entities")
            ))
          .BuildSessionFactory(); 
    }

这是发生错误的地方:

    public static IPersistenceConfigurer CurrentDataBaseConfiguration
    {
        get
        {
            if (_dataBaseConfiguration != null)
                return _dataBaseConfiguration;


                var config = MsSqlConfiguration.MsSql2005
                    .ConnectionString(c => c.FromConnectionStringWithKey("QuickBlogDB"))
                    .UseReflectionOptimizer()
                    .Cache(c => c.Not
                    .UseQueryCache())
                    .ShowSql(); 

                _dataBaseConfiguration = config;


            return _dataBaseConfiguration;
        }
    }

问题是 c.FromConnectionStringWithKey("QuickBlogDB") 为空或为空。如何获取quartz.net 作业中的配置信息?

4

1 回答 1

1

首先,您可能不应该在工作中创建会话工厂。我建议有一个静态类来保存会话工厂并在早期阶段初始化它,比如应用程序 Application_Start 方法。

它更节省资源(很多),并且更容易调试问题,因为您的应用程序甚至在配置和前提条件正确之前都不会启动。

于 2009-09-25T10:36:08.567 回答