Повторно использовать клиент службы WCF или создавать его каждый раз? - PullRequest
10 голосов
/ 09 марта 2012

Я слышал (и читал) множество мнений, связанных с тем, что лучше: повторно использовать клиент службы WCF или создавать его каждый раз. Но мне так и не удалось понять, что именно происходит в таких ситуациях. И кроме мнений, я действительно не нашел что-то «официальное» (например, на странице MSDN, в которой говорилось, что лучше, почему и когда).

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

Итак, кто-нибудь может объяснить мне, какой путь лучше? И в какой ситуации? Это зависит от загрузки клиента? Использование Web Garden на IIS повлияет на выбор?

1 Ответ

6 голосов
/ 09 марта 2012

Microsoft рекомендует кэшировать для создания клиента: http://msdn.microsoft.com/en-us/library/aa738757.aspx (ознакомьтесь с частью «Вопросы для рассмотрения»)

В начальной версии WCF возникла проблема с производительностью при создании Channel Factory, поэтому созданиеклиент каждый раз вызывает проблемы с производительностью.Нам пришлось создать и кэшировать фабрику каналов.Microsoft исправила эту проблему с помощью обновления (.NET Framework SP1?), И кэширование больше не требуется.

По существу, разница в производительности после исправления незначительна, особенно если учесть, что вы звоните черезсеть.

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