Держите соединение WCF открытым или открытым при каждом вызове
Мой вопрос направлен больше на "этикет", чем на производительность / технические детали.
Что считается хорошей практикой с клиент-серверными коммуникациями на компьютере клиента. Мое приложение "регистрирует" определенные вещи на сервере wcf. Мой сервер может работать локально в локальной сети или где-то в Интернете (переадресация портов на стороне сервера и т. Д.).
Накладные расходы на самом деле меня не касаются, так как я регистрирую незначительные объемы данных, но я буду регистрировать их часто... скажем, каждые 10 секунд или около того.
Должен ли я создать экземпляр моего объекта WCF один раз (подключиться от клиента к серверу при запуске приложения) или создать новое соединение wcf (производный вызов wcf) каждые 10 секунд.
Что считается хорошей практикой. Я обеспокоен применением правильного этикета с клиентскими ресурсами.
Любой хороший материал для чтения вы можете указать мне?
1 ответ
Лучшая практика, которую проповедуют все гуру WCF, такие как Мишель Леру Бустаманте (автор книги " Изучение WCF - руководство по использованию") и Ювал Леви (автор передовых служб программирования WCF), заключается в использовании активации каждого вызова: каждый запрос создает свой собственный экземпляр. класса обслуживания, обрабатывает запрос и снова выбрасывает экземпляр службы после вызова.
Это, безусловно, самый масштабируемый сценарий.
Все остальные сценарии (для каждого сеанса, с использованием многопоточных классов обслуживания или с использованием одиночного кода) оказывают значительное влияние на общую производительность системы или значительно усложняют процесс программирования (многопоточные безопасные классы обслуживания).
Если у вас нет веских причин для другой настройки, я бы рекомендовал использовать службы WCF для каждого вызова.