0

asp.net mvc Web アプリケーションを構築しています。そして、私はasp.netコンテキストでクォーツを実行しています。またはマッピングに流暢な 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") が null または空であることです。Quartz.net ジョブで構成情報を取得するにはどうすればよいですか?

4

1 に答える 1

1

まず第一に、ジョブ内にセッション ファクトリを作成しないでください。セッションファクトリを保持し、アプリケーションの Application_Start メソッドなどの初期段階で初期化するための静的クラスを用意することをお勧めします。

リソース効率が (大幅に) 向上し、問題のデバッグが容易になります。これは、構成と前提条件が正しくなる前にアプリが起動することさえないためです。

于 2009-09-25T10:36:08.567 に答える