Назад | Перейти на главную страницу

Отправка файлов> ~ 6 МБ на сайт IIS7 приводит к прерыванию операции ввода-вывода и разрыву сетевого подключения

Я даже не знаю, с чего начать, в основном потому, что я даже не могу определить корень проблемы - я могу только найти симптомы.

Я просто собираюсь описать, что это происходит, подробности диагностики и то, что я уже сделал, чтобы попытаться исправить это в надежде, что кто-то сможет избавить меня от этого ада или, по крайней мере, указать мне на выход.

Происходит, когда

Симптомы

Используя отслеживание неудачных запросов IIS, я смог уловить некоторые подсказки.

Когда файл POST успешно завершается, результаты появляются немедленно. Трассировка записывает все чтения сервером запроса, отправленного от клиента. В конце файла я получаю эту запись

GENERAL_READ_ENTITY_START
Duration
0ms

GENERAL_REQUEST_ENTITY_END
BytesReceived
7870 
ErrorCode
0 
ErrorCode
The operation completed successfully. (0x0)
Duration 
468ms

После этой записи выполняется остальная часть процесса, последняя запись в трассировке - это сброс и конец ответа.

GENERAL_FLUSH_RESPONSE_END 
BytesSent
12245 
ErrorCode
0 
ErrorCode
The operation completed successfully. (0x0) 

GENERAL_REQUEST_END 
BytesSent
12245 
BytesReceived
2598298 
HttpStatus
200 
HttpSubStatus
0 

При сбое POST файла происходит длительная задержка чтения, за которой следует прерывание ввода-вывода и потеря соединения.

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

GENERAL_READ_ENTITY_START
Duration
133443 ms

GENERAL_REQUEST_ENTITY_END
BytesReceived
0 
ErrorCode
2147943395 
ErrorCode
The I/O operation has been aborted because of either a thread exit or an application request. (0x800703e3) 
Duration
138248ms

Обратите внимание на огромное время продолжительности. Обычно END вход 3000-4000 мс, а START равно 0 или близко к 0.

В конце следа

GENERAL_FLUSH_RESPONSE_END
BytesSent
0 
ErrorCode
2147943629 
ErrorCode
An operation was attempted on a nonexistent network connection. (0x800704cd)

GENERAL_REQUEST_END
BytesSent
0 
BytesReceived
7210715 
HttpStatus
200 
HttpSubStatus
0 

Прочие симптомы

Единственный раз, когда POSTing работает для этих файлов, - это загрузка с самого сервера!

Под этим я подразумеваю переход к http://localhost и выполнение процесса загрузки. Это работает в 100% случаев.

Исправления уже испробованы

Я на грани остроумия, может ли кто-нибудь пролить свет на это?