Как сохранить состояние каждого клиента в службе WCF? - PullRequest
0 голосов
/ 10 июня 2010

Я создал службу WCF, в которой я хотел бы, чтобы она поддерживала состояние между вызовами от клиента. Я решил, что самый простой способ сделать это - добавить этот атрибут в сервис:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]

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

Когда я запускаю это в тестовом клиенте, сгенерированном Visual Studio, я обнаруживаю, что список, который я использовал для хранения прошлых данных, сбрасывается при каждом вызове. Есть ли что-то еще, что мне нужно сделать, чтобы поддерживать состояние для каждой сессии?

1 Ответ

2 голосов
/ 10 июня 2010

Хорошо, разобрался.Я использовал BasicHttpBinding, который не поддерживает создание экземпляров сеанса.Я переключил его на wsHttpBinding, и presto, все работает.

...