Как WCF ставит в очередь односторонние операции с привязкой netTcp - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть сервер, который перезванивает клиенту по каналу обратного вызова.

Все контрактные операции обратного вызова помечены как IsOneWay. Привязка netTcp.

У меня иногда есть сценарий, когда сервер генерирует больше сообщений, чем может обработать клиент (я могу смоделировать это, поместив режим ожидания в клиентский метод).

В конце концов я получаю "CommunicationException: The socket connection was aborted"

К сожалению, я понятия не имею, что происходит под капотом.

  • Является ли операция в очереди на отправку или принимающая сторона, или обе?
  • Можно ли отслеживать эти очереди?
  • Что вызывает таймаут?
  • Есть ли в WCF потоки, которые постоянно записывают / читают в сокет?
  • Не прекращает ли WCF на принимающей стороне чтение из сокета и, следовательно, время ожидания?

1 Ответ

0 голосов
/ 20 февраля 2011

Чтобы получить больше информации о том, что происходит, попробуйте включить трассировку WCF и использовать средство просмотра трассировки для просмотра выходных данных. здесь как включить трассировку и использовать утилиту просмотра трассировки MS SvcTraceViewer.exe

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

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