我正在对在 IIS 6 + Windows 2003 上运行的旧旧 ASP.NET 应用程序进行故障排除。该应用程序有几个页面异步轮询服务器,以便使用 System.UI.Web.Timer 刷新数据网格并发送大量视图状态每个请求(imo 太多了,但我对此无能为力)这些轮询刷新遇到间歇性 HTTP 413 代码,我不知道为什么。
到目前为止,我所做的是确保已为元数据库中的适当节点配置了 maxrequestlength 和 uploadreadahead 大小(应用程序使用客户端证书身份验证),但错误不断发生。使用萤火虫监控请求数据,我可以看到正在发送的帖子正文的大小远低于配置的任何一个大小。此外,可能值得一提的是,此应用程序允许将图像上传到其服务器(通过 https),这些图像的大小远远超过这些异步请求发送的数据大小(平均 2-5 mb),并且这些上传工作没有问题。
奇怪的是,导致 413 所需的数据量各不相同。发送 160000 字节的请求可能会顺利通过,而下一个大约 158000 字节的请求将失败并返回 413。我已经考虑了总请求大小和正在发送的实体的大小,并且变化仍然存在。
第二个奇怪的事情是,如果异步回发开始,然后因为发起另一个请求而中止(即单击数据网格中的排序列两次),则 413 肯定会发生,之后的每个异步请求都会失败并返回413 虽然有时,经过一些看似随机的时间段后,计时器发出的请求将再次开始工作而不会出现 413 错误,即使它们通常与先前失败的请求的大小完全相同(我的意思是精确到字节)。
我主要是一名 Java 开发人员,所以我对 ASP.NET (3.5) + IIS 6 环境不是很熟悉,但是除了请求太大之外,这里似乎还有一些事情要做。
任何帮助/指针/链接/任何将不胜感激。