You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用IIS Url Rewrite移除HTTP请求中的Content-Length头?

通过IIS URL Rewrite移除请求Content-Length头的操作方法

1. 先安装URL Rewrite模块

如果服务器尚未安装IIS URL Rewrite模块,打开IIS管理器,点击右上角「管理」栏的「Web平台安装程序」,搜索「URL Rewrite」完成安装即可。

2. 配置规则(两种方式任选其一)

方式一:IIS图形界面操作

  • 打开IIS管理器,定位到你的ASP.NET MVC站点,双击右侧功能区的「URL Rewrite」。
  • 点击右侧「添加规则」,选择「空白规则」,按以下参数配置:
    • 规则名称:自定义命名,比如「移除Content-Length头」
    • 匹配URL:
      • 请求路径选择「与模式匹配」,模式填写.*(若仅针对上传接口,可替换为接口路径,如/Upload/Process),使用「正则表达式」。
    • 条件:
      • 点击「添加」,输入项选择{HTTP_CONTENT_LENGTH},检查方式选「匹配模式」,模式填写.*(只要请求携带该头就触发规则)。
    • 操作:
      • 操作类型选择「重写」,重写URL填写{R:0}(保持原请求路径不变)。
      • 点击「服务器变量」→「添加」:
        • 服务器变量名填写HTTP_CONTENT_LENGTH,值留空,勾选「替换服务器变量的值」。
    • 最后点击「应用」保存规则。

方式二:直接修改web.config

打开站点根目录的web.config文件,在<system.webServer>节点内添加以下配置:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="移除Content-Length头" stopProcessing="true">
        <match url=".*" /> <!-- 可替换为你的上传接口路径,如^Upload/Process$ -->
        <conditions>
          <add input="{HTTP_CONTENT_LENGTH}" pattern=".*" />
        </conditions>
        <serverVariables>
          <set name="HTTP_CONTENT_LENGTH" value="" />
        </serverVariables>
        <action type="Rewrite" url="{R:0}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

3. 验证配置效果

用浏览器调试工具(如Chrome F12)发起上传请求,检查请求头确认Content-Length已被移除,再测试上传2GB以上文件,即可通过流式方案正常处理请求。

额外注意事项

  • 此前修改的web.config上传相关配置(如maxRequestLength、maxAllowedContentLength)无需改动,与本规则无冲突。
  • 确保站点应用池的.NET版本与你的MVC5项目一致,避免兼容性问题。

内容的提问来源于stack exchange,提问作者Ivoryguard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 08:40:22