我有一个网络 API 服务,可以接受来自网络应用程序的批量请求。我已在 web.config 中定义要压缩的 MIME 类型“multipart/*”,但响应未压缩。我不确定为什么它不能像正常的单个请求一样工作(不是作为多部分/混合发送的,压缩得很好)。
<httpCompression>
<dynamicTypes>
<clear />
<add enabled="true" mimeType="text/*" />
<add enabled="true" mimeType="application/javascript" />
<add enabled="true" mimeType="application/json" />
<add enabled="true" mimeType="multipart/*" />
<add enabled="false" mimeType="*/*" />
</dynamicTypes>
<staticTypes>
<clear />
<add enabled="true" mimeType="text/*" />
<add enabled="true" mimeType="application/javascript" />
<add enabled="true" mimeType="application/json" />
<add enabled="true" mimeType="multipart/*" />
<add enabled="false" mimeType="*/*" />
</staticTypes>
</httpCompression>
实际的响应 mime 类型以 'multipart/mixed' 开头,但根据附加到它的边界 ID 而变化。
Content-Type:multipart/mixed; boundary="0bb00cbc-234a-4264-87dc-60109719e79f"
请求正在发送一个 Accepted-Encoding header ,所以我认为问题不存在,我认为这与 IIS 匹配 mime 类型有关。
任何想法都会很棒!
谢谢,
乔恩
最佳答案
我也遇到过这个问题,并且能够通过使用这个 NuGet 包来解决这个问题: https://www.nuget.org/packages/Microsoft.AspNet.WebApi.MessageHandlers.Compression/
这也支持批量响应的压缩。
关于如何使用它的信息在 github 页面上: https://github.com/azzlack/Microsoft.AspNet.WebApi.MessageHandlers.Compression
关于http - 批量请求 MIME 类型的 IIS 压缩设置 'multipart/mixed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33007748/