WCF каково максимальное значение таймаута?

#c# #.net #wcf

#c# #.net #wcf

Вопрос:

я новичок в WCF (я начал изучать его сегодня :)).

Каково максимальное значение аргументов * Timeout в привязке? Можно ли настроить его бесконечно?

 <netTcpBinding>
        <binding  name="VeryLargeDataTcpBinding" maxReceivedMessageSize="1000000000000" transferMode="Streamed" closeTimeout="02:00:00" openTimeout="02:00:00" receiveTimeout="02:00:00" sendTimeout="02:00:00"  />
</netTcpBinding>
  

Ответ №1:

Все OpenTimeout, SendTimeout и ReceiveTimout проверяются с помощью внутреннего метода TimeoutHelper:

 public static bool IsTooLarge(TimeSpan timeout)
{
    return ((timeout > MaxWait) amp;amp; (timeout != Infinite));
}
  

Где значение maxWait по умолчанию установлено в Ctor привязки к

 TimeSpan.FromMilliseconds(2147483647.0);
  

Которое, я полагаю, составляет почти 25 дней?

Комментарии:

1. 1 за то, что связал его с maxWait и за Infinite . Пожалуйста, уважаемый OP, не используйте бесконечность или установите ее равной 25 дням…

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