WCF Proxy Pooling - стоит ли это того? - PullRequest
2 голосов
/ 31 августа 2011

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

Кстати, есть ли у кого-нибудь шаблон пула для такого рода прокси, которым он / она хочет поделиться?

1 Ответ

6 голосов
/ 31 августа 2011

Стоит кэшировать ChannelFactory, потому что его создание обходится дорого. Прокси, сгенерированные Добавить ссылку на службу (или svcutil.exe напрямую), делают это в некоторых сценариях (как правило, вы не должны создавать привязку в коде, если хотите иметь это кэширование). Если вы создаете ChannelFactory вручную (вы не используете сгенерированные прокси-серверы), вам остается хранить его где-нибудь, а не инициализировать каждый раз, когда вам это нужно.

Объединение прокси, вероятно, не имеет особого смысла. Для сервисов без сохранения состояния создание прокси должно быть быстрым (если вы кэшировали фабрику). Для сервисов Statefull вы не хотите разделять прокси между несколькими «клиентами». Существует также пул на уровне самого соединения. Привязки HTTP по умолчанию используют то, что называется постоянными соединениями. Эти соединения могут быть повторно использованы несколькими прокси. Привязки Net.tcp и net.pipe используют внутренний пул соединений . Это означает, что время жизни прокси не должно совпадать с временем жизни соединения.

...