HTTP-запрос к * .svc превысил выделенное время ожидания. Время, отведенное для этой операции, могло быть частью более длительного времени ожидания. - PullRequest
16 голосов
/ 09 ноября 2010

Я занимаюсь разработкой приложения Silverlight с использованием WCF.

Проблема в том, что иногда выдается исключение, заявляющее:

"HTTP-запрос к http://localhost:1276/Foo.svc' превысил выделенное время ожидания. Время, отведенное для этой операции, могло быть частью более длительного времени ожидания."

Так как мне увеличить временной интервал? Некоторые предложили использовать время ожидания, как показано ниже в веб-конфигурации и в файле конфигурации service.client

 <bindings>
      <customBinding >
        <binding  name="customBinding0" receiveTimeout="02:00:00" >
          <binaryMessageEncoding maxReadPoolSize="2147483647" maxWritePoolSize="2147483647" maxSessionSize="2147483647" />


          <httpTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" transferMode="Buffered"/>

        </binding>
      </customBinding>      
    </bindings>

какое будет максимальное значение для свойства receiveTimeout?

Ответы [ 3 ]

22 голосов
/ 12 января 2012

Я полагаю, что проблема не в том, что ваш ReceiveTimeout превышает максимальное значение для этого параметра, так как MaxValue для TimeSpan превышает 10 миллионов дней.Вместо этого я думаю, что настройки просто не вступают в силу.

Вы должны попытаться увеличить значения времени ожидания как на сервере, так и на стороне клиента для этого сообщения в блоге :

На сервере (в вашем web.config)

<binding name="customBinding0" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00">

На клиенте (в вашем ServiceReferences.ClientConfig)

<binding name="CustomBinding_DesignOnDemandService" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00">
4 голосов
/ 24 августа 2012

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

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

  1. Web.Config

    <httpRuntime executionTimeout="600" />
    

    (это секунды, поэтому здесь 10 минут). Подробнее о httpRuntime здесь.

  2. В элементах привязки Web.Config

    <binding name="customBinding123"     receiveTimeout="00:10:00"     sendTimeout="00:10:00"     openTimeout="00:10:00"     closeTimeout="00:10:00" />
    
  3. На ваших элементах привязки ServerReferences.ClientConfig в system.serviceModel

    <binding name="CustomBinding"     receiveTimeout="00:10:00"     sendTimeout="00:10:00"     openTimeout="00:10:00"     closeTimeout="00:10:00" />
    
1 голос
/ 17 июля 2015

Несколько дней назад мы получили такое же сообщение об ошибке. Я нашел этот поток, но прежде чем мы начали увеличивать различные свойства тайм-аута, мы проверили антивирусное программное обеспечение клиентского компьютера: это был NOD. Более новый NOD (и, возможно, другие AV) имеет возможность фильтрации / блокировки портов. Мы отключили блокировку порта 80/443, и клиент подключился без сообщения об ошибке тайм-аута.

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