Ссылки на то, что жизненный цикл для службы WCF? - PullRequest
1 голос
/ 29 сентября 2010

Скажем, у меня есть простое приложение WCF, которое клиент звонит, чтобы получить номер.В нем не так много обработки, и контракт на обслуживание приписывается как SessionMode = SessionMode.NotAllowed.

Когда вызывается конструктор?Когда объект разрушен?Вызывается ли конструктор для запроса?

Существуют ли справочные документы или ресурсы, которые содержат эту информацию?Я не могу найти его.

1 Ответ

1 голос
/ 29 сентября 2010

WCF размещается в IIS и, следовательно, подчиняется правилам его жизни. Сервисный класс сам по себе, вероятно, будет создан и уничтожен по мере необходимости в приложении; класс будет создан после получения запроса, вызванного метода и возвращенного результата, после чего объект покинет область и будет удален / завершен.

Однако проект, содержащий вашу службу, похож на обычное веб-приложение ActiveServer.NET для IIS (проверьте файл Global.asax, который должен быть в нем; он содержит класс типа HttpApplication и представляет точку входа для приложение, которое IIS может использовать для управления им), и IIS будет поддерживать «пул» этих приложений для обработки запросов от нескольких клиентов. Пока поступают запросы, а IIS не решает, что приложение устарело, и обновляет его или весь пул, приложение продолжит работу. Таким образом, любые объявленные вами статические классы, например ваш одноэлементный контейнер IoC, или все, что вы добавляете в производный класс HttpApplication, который вы используете в качестве дочернего типа, будут оставаться в памяти до тех пор, пока приложение не будет переработано.

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