asp.net – 诊断“请求超时”HttpExceptions

在StackOverflow上,我们每天都会看到一些“请求超时”异常。

事实:

>请求超时是认的90秒
>仅在POST时发生
>发布的数据是文本,通常较小(<1KB),但可以范围为几KB
>否在服务器变量中捕获表单数据
>客户端UA是多样的:IE5.5 – 7,Firefox 3.0.5,iPhone,Chrome
>客户位置多样化:英国,法国,美国 – NC,OH,NE,IN

我们测试了一个基于服务器的超时(即使用Thread.Sleep),并在异常日志中正确捕获所有表单变量 – 这使我们相信客户端在分配的时间发送请求有问题。

任何想法如何陷阱/调试这种情况是非常欢迎!

解决方法

我在使用小AJAX Web服务的生产服务器上有同样的问题。在我们的防火墙外部进行包捕获之后,我们发现对服务的POST是在两个TCP段中进行的,而第二个段从来没有到达我们。 (第一个包只包含头,第二个缺少包应该是json体)所以基本上IIS只是坐在那里等待剩余的POST。配置超时后,服务器向客户端发送RST数据包,并记录“请求超时”错误 – 这是正确的行为。

我们试图获得一个客户端没有运气,但在我们的情况下,这似乎是完全网络相关(或可能是一些“安全”软件,不喜欢的帖子的内容)。

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...