Как ограничить время выполнения запроса службы WCF? - PullRequest
8 голосов
/ 31 мая 2010

Есть ли в конфигурации WCF что-то, что определяет тайм-аут для выполнения запроса на стороне службы? Например. Служба WCF прекратит выполнение запроса через некоторое время. У меня есть служба, которая делает некоторые работы в зависимости от ввода клиента. В некоторых случаях такой вызов может занять слишком много времени. Я хочу ограничить время выполнения таких запросов на стороне службы, а не на клиенте с использованием SendTimeout. Я знаю о свойстве OperationTimeout, но он не прерывает запрос службы, он просто сообщает клиенту, что запрос истек.

1 Ответ

16 голосов
/ 31 мая 2010

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

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

Хотя это намного больше работы, вы, вероятно, будете более довольны ею в долгосрочной перспективе.

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