На стороне клиента я устанавливаю все тайм-ауты на 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) Тайм-аут шлюза. "
Может кто-нибудь дать совет по этому поводу?