Создание сессии в WCF - PullRequest
       2

Создание сессии в WCF

0 голосов
/ 17 декабря 2010

Я новичок в WCF, моя задача - создавать, поддерживать сеансы в WCF

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

Например: Сервис будетдержать объект DOM, здесь DOM означает объект базы данных, который будет иметь информацию о сотруднике. Каждый клиент будет запрашивать информацию, отличную от объекта DOM, и наш сервис должен доставлять информацию. Наш сервис не должен переходить в базу данных каждый раз, когда клиентвызовов, поэтому для этого нам нужно реализовать управление сеансами в службе (WCF).

Будет очень полезно, если кто-то предоставит некоторые идеи, предложения или пример кода для реализации моей задачи ...

Спасибо ...

1 Ответ

1 голос
/ 17 декабря 2010

Сначала я укажу, что обычно очень плохая идея использовать сессии с WCF. Если открыть слишком много сессий, потребуется много ресурсов (например, память и соединения с базой данных). Вы упомянули, что вы также храните объекты базы данных в сеансе - это также может повредить вам, поскольку большинство баз данных допускают только ограниченное количество сеансов.

Все это говорит о том, что если вам действительно нужно использовать сеансы, есть некоторая информация для его настройки на MSDN .

Вы можете настроить привязку для использования сессий следующим образом:

<wsHttpBinding>
    <binding name="wsHttpBinding">
      <reliableSession enabled="true" />
    </binding>
</wsHttpBinding>

Затем вы можете пометить свой ServiceContract с помощью SessionMode=SessionMode.Required:

    [ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples", 
SessionMode=SessionMode.Required)]
    public interface IMyService
    {
        ...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...