Жизненный цикл WCF для веб-сервиса и одноэлементного сервиса WCF? - PullRequest
2 голосов
/ 17 июня 2011

Как выглядит жизненный цикл для следующего:

  1. WCF Webservice (http)

Если я правильно понял, служба будет создаваться для каждого вызова?

  1. WCF netTCP (также размещенный в IIS) как синглтон

Правильно ли, что служба WCF будет создана при первом вызове, а затем никогда не выйдет из строя?Или он отключится, если какое-то время нет соединений?И если да, то где мне установить этот тайм-аут?Служба в моем случае сохраняет состояние для клиента, так что будет, если клиент подключится, но простаивает так долго, что превышает время ожидания?

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

Для 1) услуга будет создаваться при каждом вызове клиента

2) Одиночная услуга Одиночная услуга является конечной услугой с совместным доступом.Когда вы настраиваете службу как одноэлементную, все клиенты независимо подключаются к одному и тому же общеизвестному контексту экземпляра и неявно к одному и тому же экземпляру внутри, независимо от того, к какой конечной точке службы они подключаются.Синглтон создается ровно один раз, когда создается хост, и живет вечно: он удаляется только тогда, когда хост выключается .

По своей природе синглтон является общим,и каждый клиент должен просто создать свой собственный прокси или прокси к нему.

1 голос
/ 17 июня 2011

1) Если вы используете wsHttpBinding, то по умолчанию вы получите экземпляр PerSession и один экземпляр для каждого прокси. Если вы используете BasicHttpBinding, то по умолчанию вы получите экземпляр PerCall - один экземпляр на запрос.

2) Как говорит Томас, синглтоны создаются при открытии ServiceHost (или вы можете создать их самостоятельно. Синглтон будет жить до тех пор, пока IIS поддерживает процесс AppDomain / worker. Вы можете настроить таймауты, которые влияют на это, в зависимости от используемой версии IIS http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling

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