Как я могу настроить сеанс в моей службе WCF, вызываемой с Windows Phone 7? - PullRequest
5 голосов
/ 20 мая 2011

У меня есть служба, которая вызывается из WP7.Я знаю, что WP7 (Silverlight) поддерживает только basicHtptBinding до сегодняшнего дня, и, к сожалению, он не поддерживает Session, поэтому я не могу использовать InstanceContextMode.PerSession и SessionMode.Required в этом сервисе.Но у меня есть некоторые данные на сервере, которые мне нужно сохранить на сессии.Какие варианты у меня есть?

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Я не знаком с программированием для Windows Phone 7, но если он позволит вам использовать basicHTTPContextBinding, который является разновидностью basicHTTPBinding, тогда я предлагаю вам взглянуть на Durable Service.

Durable services allowсохранять состояние сеанса в некотором постоянном хранилище и получать к нему доступ при каждом новом вызове метода через токен.

Посмотрите статью в блоге по этой ссылке .

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

Дайте нам знать, если у вас все получится!

1 голос
/ 21 мая 2011

Вы можете использовать ConcurrentDictionary в статическом классе на стороне сервера для кэширования объекта, используя идентификатор пользователя в качестве ключа. Если вам нужен кеш в течение очень долгого времени, вы захотите разместить службу в службе Windows, чтобы избежать проблем с циклом работы пула приложений и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...