我甚至不知道从哪里开始,主要是因为我甚至无法确定问题的根源 – 我只能find症状。
我只是要描述它发生了什么,诊断的细节,以及我已经做了什么来试图解决它,希望有人能把我从这个地狱中救出来,或者至less指向我的出口。
发生时
<form> ) 症状
使用IIS的失败请求追踪我已经能够find一些线索。
当文件POSTs成功的结果是立竿见影的。 跟踪logging服务器对客户端发送的请求的所有读取。 在文件的末尾,我得到这个条目
GENERAL_READ_ENTITY_START Duration 0ms GENERAL_REQUEST_ENTITY_END BytesReceived 7870 ErrorCode 0 ErrorCode The operation completed successfully. (0x0) Duration 468ms
在这个入口之后,进程的其余部分运行,跟踪中的最后一个入口是flush和响应的结束。
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失败时,读取会有很长的延迟,然后是I / O中止和连接中断
请求中的最后一个条目如下所示:
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-4000ms, 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%的时间。
修复已经尝试
web.config httpRuntime下的executionTimeout设置为6分钟。 参考 web.config httpRuntime下的maxRequestLength设置为50MB。 web.config中的requestLimits中的maxAllowedContentLength设置为50MB。 我在智慧的结尾,谁能对此有所了解?