Попробуйте это вместо этого
if ( (expiryDate - DateTime.Now ).TotalDays < 30 ) {
matchFound = true;
}
Если сервер действительно занимает много времени, чтобы вернуть какие-либо данные (как показано в Fiddler), то это причина. Загрузка вложения размером 85 МБ займет много времени, а затем серверу придется его обработать. Вы ничего не можете с этим поделать - кроме использования асинхронного метода, если вы можете продолжить работу до возврата вызова.
Это не полностью ясно, что Fiddler показывает вам хотя - показывает ли он задолго до того, как сервер отправит ответ? Если так, то вы мало что можете сделать. Я удивлен, что связь с вами закрывается, правда. Однако если вы не видите, что ваши данные записываются на сервер в течение некоторого времени, это другое дело.
Утилизируете ли вы возвращенный ответ? В противном случае у вас могут быть связи, которые поддерживаются. Это не должно быть проблемой, если это явно HTTP 1.0, но это наиболее частая причина "зависания" веб-вызовов, по моему опыту.
В основном, если вы не избавляете от ] WebResponse
обычно (по крайней мере, с HTTP 1.1 и keepalive) удерживает соединение. Существует ограничение на количество подключений, которые могут быть открыты для одного хоста, поэтому вы можете дождаться завершения предыдущего ответа, прежде чем можно будет продолжить следующий.
Если это - это , проблема ответом является простой оператор с использованием
:
using (WebResponse response = request.GetResponse())
{
...
}
Да, время отклика может быть намного больше, чем просто время загрузки. После того, как запрос был отправлен на сервер, он должен быть обработан и должен быть возвращен. Может пройти некоторое время, прежде чем запрос будет обработан, а затем файл обычно будет где-то сохранен. После этого сервер создаст страницу ответа, которая будет отправлена обратно.
IIS обрабатывает только один запрос за раз от каждого пользователя,