2011-01-18 2 views
-1

Я разрабатываю один из моих личных проектов, и я нашел некоторые проблемы.Архитектура N-уровня с задачей состояния сеанса WCF и ASP.NET

Это н-уровневая архитектура:

  • Framework.
  • Служба WCF Framework.
  • Элемент управления ASP.NET, который подключается к службам WCF Framework на стороне сервера.
  • ASP.NET клиент, который управляет этим управлением.

Служба WCF находится в режиме совместимости с ASP.NET.

В чем проблема? Каждый запрос находится в другом сеансе. Я обнаружил, что поскольку сохраненные значения для сеансов сбрасываются в каждом запросе, как я уже говорил ранее.

Я два вопроса, то:

1) - некоторым образом очевидно, но я хочу подтверждение - Есть ли тот факт вызова WCF Framework услуги на стороне сервера означает, что сеанс для сервера, а не на одного клиента ?

2) Является первым вопросом, почему причина получения нового сеанса после каждого запроса?

В конце концов, я собираюсь отключить режим совместимости ASP.NET для этой службы WCF Framework и разработать собственное управление состоянием сеанса, что не является сложной задачей, но я не являюсь другом изобретателя колес ,

Заранее спасибо.

ответ

1

Режим создания экземпляра WCF по умолчанию - это вызов вызова: объекты вызова службы существуют во время каждого вызова клиента. Когда клиентский вызов завершает вызовы WCF IDisposable.Dispose. Тип Конкретизация может быть установлен как:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 
class MyWCFService : IMyWCFContract.... 

Есть еще два типа конкретизация: Per-Session Services и Shareable услуги.

Вы должны использовать Per-сессии для вашего проекта, так что вы можете настроить службу WCF:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 
class MyWCFService : IMyWCFContract.... 

вы можете найти более подробную информацию о MSDN удачи

+0

Спасибо! Это похоже на правильное решение. Я проверю это позже в моем доме (я работаю @). На данный момент я отмечу как решение. –

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

  • Нет связанных вопросов^_^