Как поддерживать сеанс и тот же канал в веб-приложении WCF

#wcf

#wcf

Вопрос:

Я создал службу WCF, разместил ее в IIS и создал для нее клиент веб-приложения.

Все работает нормально.

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

Мой сервис имеет несколько функций. функция, которую я хочу выполнить первой, — это моя функция входа в систему, поэтому я установил IsInitiating = true.

и IsInitiating = false для всех других функций.

теперь со стороны клиента все работает нормально, когда я вызываю функцию входа в систему. но когда я пытаюсь вызвать другие функции после входа клиента в систему, это генерирует исключение, что функция XYZ не может быть вызвана первой, потому что для IsInitiating установлено значение fale;

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

Комментарии:

1. Почему вы используете такую архитектуру? Это плохой способ.

Ответ №1:

У меня есть для вас очень интересная ссылка, которая, вероятно, могла бы решить вашу проблему. http://www.codeproject.com/KB/WCF/Sessions_in_WCF.aspx

Комментарии:

1. Привет, Денис, Ну, в этой статье объясняется то же самое, что я читал и на других форумах. Я это реализовал и тоже использовал. но моя проблема на стороне клиента. я решил свою проблему традиционным способом. Я создал прокси и сохранил его в asp.net сеансы. пока я думал о другом подходе. я хочу создать прокси и при каждой обратной передаче есть ли какой-либо способ использовать один и тот же прокси вместо сеанса?

2. ДА. Просто кэшируйте прокси-сервер службы (client), а затем извлекайте его, когда захотите выполнить вызов операции службы. Вероятно, сохраните его в объекте сеанса или приложения, если вы используете asp.net ?