Вопрос

Я создаю asp.net веб-приложение mvc.И я запускаю quartz в контексте asp.net.Я использую fluent nhibernate для своих сопоставлений or.Я создаю простое задание, которое выполняет запись записи в базе данных.

    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?

Это было полезно?

Решение

Прежде всего, вам, вероятно, не следует создавать свою фабрику сеансов внутри вашей работы.Я бы рекомендовал иметь статический класс для хранения фабрики сеансов и инициализировать его на более ранней стадии, скажем, методом Application_Start приложения.

Это более ресурсоэффективно (намного) и упрощает отладку проблем, поскольку ваше приложение даже не запустится до тех пор, пока не будут созданы правильные настройки и предварительные условия.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top