Тайм-аут WCF, который прерывает текущую операцию? - PullRequest
0 голосов
/ 02 марта 2012

Я попытался установить sendTimeout, receiveTimeout и httpRuntim executeTimeout в нашей службе приложений WCF (IIS7 / TCP / WAS).

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

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

1 Ответ

0 голосов
/ 02 марта 2012

Запустите задание в «фоновом» потоке или используйте другой механизм, подобный этому, и просто игнорируйте результаты сетевого вызова, основываясь на каком-то флаге «стоп».

Я использовал небольшую систему заданийработа с заявками на основе идентификаторов GUID, которые просто не вызывают события «Завершено», если задание было остановлено.

Отмена фактического сетевого вызова потенциально небезопасна.Вы можете убить функцию в некотором критическом пути сетевого кода, который нарушает драйвер / ОС / любой другой код.

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