dayzy_bayzy
@dayzy_bayzy
UI

Как избавиться от разрывов связи между десктопным приложением и сервером?

Привет! Работаем с WCF (Windows Communication Foundation) для клиент-серверных приложений. Клиент — трекер, десктопное приложение для трекинга, обработки и передачи данных в базу. Сам сервис хостится в десктопном приложении (админ) на удаленном сервере. Оба приложения написаны на wpf по шаблону mvvm, используем devexpress.

Проблема началась пару недель назад: перестали поступать запросы на сервер. Трекер зависал, нельзя было выполнить вход или сделать запрос к базе, если ты уже залогинен.

При присоединении к процессу приложения Админ, где крутится сервис, с тестового клиента не срабатывали брейкпоинты (но была ситуация когда во время теста сработали брейкпоинты, но на запросы с других клиентов, а не тестового). При нажатии на паузу во время проблем с подключением visual studio писала, что вы находитесь в break mode, но никакой код не выполняется.

Добавили логи трассировки на сервере (файл с расширением .svclog). Отловили, что проблема с запросами на сервер происходит, когда есть логи с нескольких потоков с определенного айпи и идет прием байтов (иногда айпи менялся на другой, с того же региона). Порядка 10 потоков обрабатывают запрос с этого айпи. И это может длится от 30 минут до часа. Практически все эти длинные запросы по логам заканчивались экспешенами (CommunicationException. Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения; Попытка выполнить операцию для несуществующего сетевого подключения). Была пара длинных запросов, которые завершились без ошибок.

Поменяли в конфигурации сервиса вот такие параметры: ConcurrencyMode, UseSynchronizationContext. Это не помогло.
Заблокировали айпи, с которого шли длинные запросы, тоже не помогло. Сейчас единственное решение — перезагрузка Админа, когда случается зависание. Ошибка стабильно портит жизнь последние недели две. До этого разрывы случались очень редко. В сервисе до появления регулярных проблем давно ничего не меняли.
  • Вопрос задан
  • 297 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы