Исключение тайм-аута WCF, установить тайм-аут, но не работает, все еще сказать тайм-аут - PullRequest
0 голосов
/ 13 марта 2020

На стороне клиента я устанавливаю все тайм-ауты на 10 минут (отправка, закрытие, openTimeout, получение),

var httpBinding = new WSHttpBinding() { OpenTimeout = timeout, CloseTimeout = timeout, SendTimeout = timeout, ReceiveTimeout = timeout, MaxReceivedMessageSize = int.MaxValue };

if (useHTTPS)
{
    httpBinding.Security.Mode = SecurityMode.Transport;
    httpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
}
else
{
    httpBinding.Security.Mode = SecurityMode.None;
}

на стороне сервера, я также добавляю

<wsHttpBinding> 
    <binding name="binding1" closeTimeout="00:20:00" openTimeout="00:20:00" receiveTimeout="00:40:00" sendTimeout="00:20:00" maxBufferPoolSize="1000000000" maxReceivedMessageSize="1000000000">
        <security mode="None"> 
            <transport clientCredentialType="None" /> 
        </security> 
    </binding>          
</wsHttpBinding> 

Но когда я выполняю запрос, он всегда выдает сообщение, как показано ниже, странная часть в том, что я считаю тайм-аут на своем локальном компьютере, общая стоимость времени составляет меньше, чем 7 минут , на это уходит всего 6 или 7 минут. , затем показать сообщение о том, что истекло время ожидания ( фактически не занимает 10 минут! ).

"Время ожидания канала запроса истекло при ожидании ответа после 00: 09: 59.8163442. Увеличьте время ожидания значение, переданное вызову Request или увеличьте значение SendTimeout в Binding. Время, отведенное для этой операции, могло быть частью более длительного тайм-аута "

Внутреннее исключение show" Удаленный сервер возвратил ошибку: (504) Тайм-аут шлюза. "

Может кто-нибудь дать совет по этому поводу?

...