2012-03-09 4 views
9

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

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

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

ответ

5

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

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

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

+0

"SP1" of * который * каркас? – user2864740

Смежные вопросы