2014-01-29 4 views
0

У меня есть очень простой вопрос о службе wcf с basicHttpbinding: Когда клиент вызывает службу wcf (basichttpbinding) синхронно, как запрос и ответ принимаются между двумя? Установлено ли соединение сокета между 2 и портом на сервере до получения ответа на клиент? Как ответ отправляется обратно ожидающему клиенту? Порт IF на сервере непригоден для длительной работы, и это ли мешает возможности службы принимать запрос от другого клиента? Кроме того, как связь происходит в банке асинхронного вызова службы wcf? Я прочитал этот канал и, следовательно, порт/сокет должен оставаться открытым с обоих концов.Связь с клиентом WCF

ответ

0

С basichttpbinding, это почти то же самое, что и обычная HTTP-связь между браузером и веб-сервером. Если вы нажмете ссылку на веб-странице, запрос от браузера отправляется на соответствующий веб-сервер, который обрабатывает запрос и возвращает содержимое в качестве ответа ожидающему браузеру.

Это то же самое с WCF basicHTTPBinding. Клиент WCF отправляет сообщение или получает запрос на указанный веб-сервис (http: // webservice: port/ServiceObj/MethodName) и ждет ответа. Когда веб-служба завершает сбор данных, данные отправляются обратно клиенту в ответ на открытое соединение, которое затем закрывается хостом. Там нет постоянной связи. Таким образом, basichttpbinding является апатридом. Как только веб-служба отправляет ответ, соединение перерабатывается, и служба готова перейти для следующего запроса.

Если клиент завершил свое сообщение, он может закрыть его соединение явно; это лучше. Но если он не закрывает свое соединение, это не будет иметь никакого значения для хоста.

+0

Спасибо, у меня есть еще один запрос, когда вы говорите, что соединение перерабатывается, что именно оно означает. Если его порт 80 веб-службы используется на сервере для прослушивания запроса. Если есть несколько клиентов, отправляющих запрос на услугу, и каждый клиент имеет соединение с серверами до получения ответа, есть ли мы соединение на стороне сервера? Соединение - это просто комбинация клиентского ip и порта и сервера ip и порта. На серверном порту и ip одинаковы, все клиенты подключены к одной и той же комбинации ip и портов на сервере. Итак, какие связи я перерабатываю? – user1855287

+0

Утилизация была, вероятно, неправильным словом, поскольку подразумевает повторное использование. По моему мнению, соединения закрываются на стороне сервера после того, как ответ отправляется обратно клиенту. Хосты WCF могут запускать много, много одновременных соединений на стороне хоста. Если в определенное время поступает слишком много запросов, запросы автоматически ставятся в очередь WCF и обрабатываются, когда у системы есть шанс. – Brian

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