Я использую C # с планировщиком Quartz в приложении asp.net.После того, как пользователь нажимает кнопку на внешнем интерфейсе, задача Quartz немедленно запускается в фоновом режиме, однако эта задача преждевременно завершается после завершения сеанса пользователя.
Сеанс пользователя - это пул приложений, отличный от пула сеанса Quartz.
Очевидно, что желаемое поведение для продолжения задачи, даже когда пользователь, инициировавший задачу, завершает свою работу или завершает сеанс.
Обновление: я добавил больше журналовинформация - что на самом деле вызывает остановку задачи, это:
в System.Web.Hosting.HostingEnvironment.StopRegisteredObjects (немедленное логическое значение) в System.Web.Hosting.HostingEnvironment.InitiateShutdownWorkItemCallback (состояние объекта) в системе.Threading.ExecutionContext.RunInternal (ExecutionContext executeContext Execution, обратный вызов ContextCallback, состояние объекта, Boolean preserveSyncCtx) в System.Threading.ExecutionContext.Run (обратный вызов ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, логический preserveSynct)System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () в System.Threading.ThreadPoolWorkQueue.Dispatch ()
Класс планировщика задач, выполняющий задачи Quartz, был зарегистрирован в System.HostingHost.H.- и когда поток отправляется, похоже, он останавливает планировщик задач.Так что это может быть ближе к тому, что я должен искать - мне нужно понять, почему был отправлен поток, выполняющий задачу.
Сначала я думал, что проблема связана с областью действия Autofac Lifetime компонента иМой вопрос изначально был сосредоточен на этом.Я оставлю свои замечания по Autofac ниже, потому что может оказаться, что это был фактор, я просто пока не знаю, пока не решу проблему.
Исходное описание проблемы: я исследую проблему, гдеобласть действия компонента времени неправильно ведет себя так, как будто это область действия запроса времени жизни.
Поскольку существует много зависимостей, я подумал, что если я проверю внутренний код Autofac в отладчике, это поможет мне определить, что быловызывая проблему.
Однако мне трудно понять, как внутренняя область действия представлена внутри Autofac.
Кто-нибудь знает, как найти область действия, связанную с компонентом в Autofac, в частности, если у него есть область действия запроса?