【发布时间】:2021-06-28 03:34:31
【问题描述】:
我们有一个在 IIS 10.5 上运行的 ASP.NET WEBAPI 应用程序,我们提供了一个上传文件 API。 因为,我们预计大文件超过 1 GB 左右,所以我们正在执行一些测试分块传输编码。 据观察,IIS 10.5 不接受传输编码设置为 Chunked 的请求。
在 .NET Framework 方面,我们确实可以选择使用“无缓冲”输入流来避免缓冲,这样,我们可以避免在接收端进行缓冲,但这与分块编码不同。
API 消费者应用程序发送具有分块传输编码集的请求,但这些请求失败。虽然可以要求消费者应用程序不要发送此标头,但这可能会在消费者端产生潜在问题,因为所有内容都在客户端缓冲,从而导致内存问题,最终可能会耗尽内存。
根据 HTTP 1.1,发送方和接收方都应支持分块编码。论坛中有一个论点是分块编码仅适用于“响应”而不是“请求”。但在双方都支持这一点似乎是合乎逻辑的,而且 HTTP 1.1 规范似乎在谈论两端,尽管没有明确提及。
例如,Apache HTTP 客户端在文件上传期间也支持分块编码。
有没有办法启用分块编码支持?还是 IIS 10.5 不支持它的任何原因?对此的任何帮助/想法都非常感谢。
【问题讨论】:
-
您好,问题解决了吗?如果您认为我的回复对您有帮助,您可以将其标记为答案。
标签: asp.net-web-api .net-framework-version iis-10 http-1.1