Узнайте, что ломает мой канал WCF

У меня есть два приложения, общение через WCF. Связь отлично работает на наших компьютерах разработки, но кажется, что на одном из наших клиентов, это не так. У нас точно такая же версия установки установлена ​​на их конце. Эти два приложения (в данном случае) установлены на одном компьютере, но все еще используют связь TCP.

Я проверил в наших журналах (у нас Log4Net регистрирует все исключения каждый раз, когда мы звоним в службу).

Во-первых, на сервере появляется ошибка при попытке отправить сообщение с помощью обратного вызова:

System.TimeoutException: эта операция запроса, отправленная на http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous, не получила ответ в течение настроенного времени ожидания (00:00:29.9779844). Время, выделенное для этой операции, могло быть частью более длительного времени ожидания. Это может быть связано с тем, что служба все еще обрабатывает операцию или службе не удалось отправить ответное сообщение. Пожалуйста, подумайте об увеличении времени ожидания операции (путем преобразования канала / прокси в IContextChannel и установки свойства OperationTimeout) и убедитесь, что служба может подключиться к клиенту.

Затем на клиенте, когда сервер завершил попытку повторной отправки сообщения, мы имеем следующую ошибку:

System.TimeoutException: эта операция запроса отправлена ​​net.tcp://192.168.0.144:55000/someInstanceName/IMyService не получила ответ в течение настроенного времени ожидания (00:00:29.9994997). Время, выделенное для этой операции, могло быть частью более длительного времени ожидания. Это может быть связано с тем, что служба все еще обрабатывает операцию или службе не удалось отправить ответное сообщение. Пожалуйста, подумайте об увеличении времени ожидания операции (путем преобразования канала / прокси в IContextChannel и установки свойства OperationTimeout) и убедитесь, что служба может подключиться к клиенту.

Я не думаю, что это связано с тайм-аутом, потому что у нас есть ошибка на сервере через 7 секунд после того, как пользователь выполнил какую-то операцию в графическом интерфейсе, которая должна инициировать эту связь, и тайм-аут установлен на 30 секунд.

Я не могу воспроизвести его локально (и клиент может заставить его работать после нескольких испытаний), как мне приступить к его устранению, какие инструменты позволят мне лучше понять, что происходит?

редактировать

Используя журнал в файл svclog, я получил больше информации.

  • Первое: кажется, что первый тайм-аут, который взорвется на клиенте и сервере, не сможет связаться с клиентом

Я нашел кое-что другое: я не уверен, как это интерпретировать, но для одного "Действия" у меня действительно много событий. Меня беспокоит то, что между некоторыми сообщениями возникают большие скачки, но я не уверен, что понимаю почему. введите описание изображения здесь

Кроме того, я не уверен, что понимаю, почему так много сообщений для одного запроса. WCF разбивает запрос на несколько запросов? Если есть период, когда он останавливается, а затем продолжается, что может спровоцировать его?

0 ответов

Другие вопросы по тегам