Как ограничить время выполнения запроса сервиса WCF?

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

8
задан Kamarey 31 May 2010 в 13:47
поделиться

1 ответ

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

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

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

16
ответ дан 5 December 2019 в 10:39
поделиться
Другие вопросы по тегам:

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