Я пытаюсь справиться с созданием экземпляров WCF, и у меня возникают проблемы с сеансами. Либо мое предположение о том, как это работает, неверно, либо я что-то упускаю.
В моем сервисном контракте (реализация, а не интерфейс) я установил для InstanceContextMode поведения сервиса значение PerSession. У меня есть частная строка в службе под названием «слово», которая представляет собой просто пустую строку и 2 метода: 1 для установки переменной слова в указанное значение и 1 для ее извлечения.
Я добавил ссылку на службу в приложение MVC, а затем выполнил следующие вызовы:
- ПолучитьСлово()
- SetWord("тест")
- ПолучитьСлово()
Первый вызов возвращает пустую строку, как я и ожидал. SetWord обновляет приватную переменную и перенастраивает это значение, как я и ожидал. Однако второй вызов GetWord() возвращает пустую строку, я ожидал, что он вернет «тест».
Если я изменю InstanceContextMode на «Single», я получу «тест» от конечного вызова GetWord (как и следовало ожидать), но я не понимаю, почему я не получу то же самое от PerSession.
Может ли кто-нибудь помочь мне понять, где я ошибаюсь?