Мне нужно добавить рабочую роль для долгосрочных задач в мой текущий веб-проект, используя Castle
и Nhibernate
.
В настоящее время многие из моих служб установлены в DomainModel
как PerWebRequest
. Мне нужно использовать некоторые из них в моем Worker
, которые не могут использовать PerWebRequest
, поэтому мне нужно, чтобы они были Transient
.
Где лучше всего разместить установщики?
Должен ли я зарегистрировать услуги в DomainModel
или Web
и Worker
с соответствующими LifeStyle
для каждого?
Например, NHibernate - это PerWebRequest для Web, но не для Worker. Поскольку многие службы внутри DomainModel зависят от ISession, кажется неправильным требовать, чтобы Web или рабочая сборка зарегистрировали его «для» DomainModel.
Мое решение состоит из трех проектов, подобных этому:
DomainModel
- DAO, shared services etc.
Web
- Models and presentation
Worker (new)
- Long running background tasks