我们有一个处理用户上传文件的 ASP.NET 应用程序。浏览器发送一个(多部分)POST 请求。我们有一个简单的 HttpHandler 并使用 HttpRequest.Files 来访问上传的文件。它在 Windows 2008 R2 上的 IIS7.5 上运行。
有时,我们会看到集合包含 0 个文件的错误。在检查 HttpRequest.InputStream 时,我们看到我们有一个不完整的 POST 请求。Content-Length 标头表示应该有比实际更多的数据。
我们设法使用 Fiddler 重现它: - 发送一个 requestBody < Content-Length 的请求。- 应用程序在第一次引用 HttpRequest.Params 时挂起。- 终止 Fiddler,关闭连接并恢复应用程序。作为主体的应用程序逻辑不完整(0 个文件)。
我认为这是我们必须处理且无能为力的情况。毕竟浏览器可能随时关闭连接。
我想知道是否有一些开关可以阻止 IIS 将不完整的 POST 请求移交给应用程序层(即一些缓冲区)。这将消除 ApplicationLayer 错误监控中的一些噪音。
谢谢,彼得