Лучший подход для клиента WCF - PullRequest
5 голосов
/ 29 октября 2008

У меня есть клиентское приложение, которое использует службу WCF для вставки некоторых данных в базу данных сервера. Клиентское приложение будет звонить в службу по каждому событию (это может быть каждый час или каждую секунду).

Мне интересно, как лучше позвонить в эту службу.

Должен ли я создать канал связи и держать его открытым все время, или я должен закрывать канал после каждого вызова и создавать его заново?

Ответы [ 2 ]

5 голосов
/ 29 октября 2008

Первый вопрос заключается в том, нужно ли вашему серверу поддерживать какое-либо состояние непосредственно у клиента (т. Е. Выполняете ли вы сеансовые транзакции?). Если это так, вам нужно будет уметь управлять тем, как сервер хранит информацию между соединениями. .

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

1 голос
/ 29 октября 2008

Я думаю, вы, вероятно, захотите внедрить шаблон Keep Alive с настраиваемой продолжительностью, чтобы информировать базовый механизм о закрытии соединения, если он вышел за пределы продолжительности Keep-alive с нулевой активностью связи.

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