Замок Виндзор - создание и утилизация контейнера в услугах WCF - PullRequest
1 голос
/ 02 сентября 2011

Я планирую реализовать Castle Windsor в слое WCF, который является проектом ASP.Net.Когда я просмотрел документацию Касл Виндзор, мне сказали, что нам нужно создать контейнер только один раз и утилизировать его после использования.Поэтому я поражен этим моментом в моем сценарии, когда мне нужно создать контейнер в WCF.Сначала я подумал о том, чтобы поместить это в Application_start в global.asax.vb и расположить в Application_End, но application_end будет вызываться при повторном запуске пула приложений или перезапуске iis и т. Д.

Итак, во-вторых, мне вспомнились Session_start и Session_end,Снова конец сессии будет работать только для типа Inproc.Также он может быть вызван только после определенного количества простоя.

Третий вариант - вызывать каждый метод для создания экземпляра и закрывать его после каждого метода.что не рекомендуется из того, что я знаю.

Не могли бы вы предложить лучший способ для этого?

Заранее спасибо Сай

1 Ответ

2 голосов
/ 02 сентября 2011

Обычно вы конфигурируете свой контейнер IOC только один раз за время жизни приложения, и делать это в Application_Start() кажется вполне разумным.Переконфигурирование его для каждого нового сеанса или для каждого запроса скорее всего просто выполняет ненужную работу;Кроме того, я подозреваю, что это может ухудшить производительность.

Я не вижу ничего плохого в подходе Application_Start() / Application_End().Если вы боитесь, что это может привести к утечке ресурсов или что-то в этом роде, тогда эти опасения неоправданны.

...