WCF Сервис зависает на 14 звонке - PullRequest
2 голосов
/ 10 марта 2010

У меня проблема с тем, что служба WCF зависает после 13-14 асинхронных вызовов процессов от клиента. Это происходит постоянно. Клиент представляет собой мобильное приложение JavaFX. На сервере и клиенте не выводится конкретная ошибка. Кто-то предположил, что это может быть проблема удушения.

Я установил параметры .config стороны службы вызовов maxConcurrent от 10 до 500

<serviceThrottling maxConcurrentCalls="500"  maxConcurrentSessions="500” />

Значит, это должно быть в состоянии принимать более 10 звонков, верно? Тем не менее, это не решило эту проблему. По-прежнему зависает на 13-14-м вызове процесса.

Только один клиент подключается к этому веб-сервису.

Что вы думаете не так?

Ответы [ 3 ]

4 голосов
/ 10 марта 2010

Вы закрываете клиента после звонка? Когда я столкнулся с этой проблемой, я не закрыл ее, и запросы на открытие через короткое время заблокировали службу.

Редактировать: Хорошо, я ничего не знаю о JavaFX =) Код ниже C #, извините. Но вы наверняка можете сделать что-то подобное.

Используйте либо

WcfClient client = new WcfClient()
// ...
client.Close()

или

using(WcfClient client = new WcfClient()){
// ...
}
1 голос
/ 10 марта 2010

Подобная проблема здесь - у меня есть приложение, вызывающее из одного процесса в другой, локально, именованные каналы.

Вызовы действительно легки в коде - в основном принимают массив сериализуемых объектов, ставят их в очередь на другой стороне. Изредка зависает. Перезапускается после тайм-аута. данные не теряются, но ... поскольку данные являются финансовыми данными, а получающее приложение - автоматической системой торговли, это может привести к очень серьезным финансовым проблемам. Пока не удалось воспроизвести его.

1 голос
/ 10 марта 2010

Это может быть легко вызвано любым тупиком в вашем коде. Если ваш сервис блокируется и начинает израсходовать 100% или процессор, у вас есть мертвая блокировка. Создайте файл дампа и посмотрите, где был ваш код.

Я столкнулся с той же проблемой, в моем первом приложении WCF, это был словарь, который я не проверял, синхронизирован ли он в журнале регистрации.


SvcTraceViewer очень полезен для определения жесткого wcf

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