2010-11-19 1 views
0

У меня проблема. Я установил управление сеансом ma в соответствии с вызовом wcf. Я использую StructureMap как IoC, и я вставляю сессию в конструктор репозитория.Сессия закрыта в сеансе по сценарию вызова WCF

есть один сценарий, когда я получаю сессию закрытым исключением. Поэтому я отладка и это рабочий процесс: (. Для() Используйте < _sessionFactory.GetCurrentSession()) 1. SessionFactory.OpenSession() 2. Сохранить сессию в контексте 3. StructureMap получает сеанс из контекста, и впрыснуть сеанс в мой репозиторий (в этот момент Session.IsOpen == true) 4. Я делаю запрос. 5. При выполнении запроса (исключение закрыто Заключение закрыто) 6. Концы WchCall 7. Отключить (экземпляр контекста) из NHibernateContextManager: вызывается IExtension (в этот момент Session.IsOpen == true !!!!) 8. Session.Close называется

Это исключение происходит только в одном сценарии, все остальное работает нормально.

Пожалуйста, помогите.

+0

И это происходит только в одном классе, один и тот же репозиторий работает в другом. – Luka

+0

И это происходит только в том случае, если я позволяю StructureMap создавать экземпляр класса, но если я использую ObjectFactory.GetInstance (), тогда он работает нормально. – Luka

ответ

0

Хорошо, нашел проблему. Проблема была в конструировании StructureMap для этого класса: У меня было: ForSingletonOf(). Использовать();

Теперь изменено на: Для(). Использовать();

Смежные вопросы