Зависание клиентского приложения WCF - нужен совет по репро - PullRequest
0 голосов
/ 28 октября 2009

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

Когда эта проблема была впервые замечена, я не изменил конфигурацию регулирования, и службы были настроены на ConcurrencyMode.Single. Одна вещь, которую я заметил, была то, что IISReset на сервере вызвал зависание многих клиентов. Тем не менее выполнение этой же задачи на клиенте, работающем против IIS на моем локальном компьютере, похоже, не вызывает проблемы.

Я поймал это только один раз в дикой природе, но в то время отладка не была включена. Симптом, который я засвидетельствовал, состоял в том, что клиент, казалось, пытался открыть соединение с веб-сервером, но не смог. Во время мониторинга с помощью Fiddler я не видел попыток достичь конечной точки службы. Очевидно, это заставляет меня подозревать прокси клиента.

У меня очень четкое представление о том, что происходит, а именно: я использовал «Close ()» вместо «Abort ()», когда служба выдает исключение, которое, по моему мнению, приводит к повреждению каналов. , Но, учитывая усилия по созданию новой версии, мне нужно воспроизвести эту проблему, заставив клиента на моей собственной машине зависнуть , прежде чем я смогу начать вносить изменения в код.

С чего мне начать?

Заранее спасибо,

roufamatic

Ответы [ 2 ]

0 голосов
/ 30 октября 2009

Полагаю, это был слишком расплывчатый вопрос, хотя мне было очень любопытно, что люди могут предложить. Как оказалось, между моей рабочей станцией и производственной средой было нетривиальное различие, которое после разрешения позволило мне увидеть проблему. В этом случае использование Fiddler для наблюдения за трафиком фактически предотвратило возникновение ошибки! Теперь, чтобы задать еще один вопрос.

0 голосов
/ 28 октября 2009

У вас включено ведение журнала? Это может помочь в диагностике проблемы. Это можно сделать полностью в конфиге, поэтому нет необходимости создавать новую версию. Используйте инструмент Service Configuration Editor, чтобы настроить все это. Учебный комплект Visual Studio 2008 содержит хорошее руководство по использованию ведения журнала и средства просмотра журнала.

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