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

Asp.Net 6+IIS环境下,如何修改超长URL请求的错误响应码?

关于IIS处理超长URL返回错误码的问题

我正在开发一个实现特定API的Web服务器,该API所属协会提供了测试用例用于验证实现。其中一个测试用例为:

5.3.2.12 鲁棒性测试:大资源ID
该测试验证发送含超长资源ID的URL参数的HTTP请求时,服务器的错误处理是否正确。

请求的URL示例如下:

https://localhost:443/api/v2/functions/be13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005ebe13789-1f1e-47d0-8f8a-000000000005

该测试要求服务器在URL过长时返回正确的错误码(当前测试要求返回405,我已询问是否应为414)。

我使用Asp.Net 6开发服务器,测试中始终返回400错误(Bad Request)。找不到修改该行为的设置,不确定是否IIS在请求到达应用前就拦截了它。已启用IIS日志,但请求未出现在inetpub/logs/LogFiles的日志文件中。

我的问题是:能否让IIS在此场景下返回不同的错误码,或者能否在应用中处理该错误?

已尝试的操作:

  • 启用IIS日志,确认请求是否传递到站点(未找到)
  • 在控制器中添加过滤器,尝试捕获异常
  • 检查是否调用了开发错误页面
  • 现有中间件中的断点未触发

编辑1:我现在确定请求从未到达应用程序。使用Windows上IIS生成的默认站点即可复现该错误,将上述完整路径复制到浏览器访问http://localhost时,同样返回400错误。

编辑2:按照@YurongDai的建议,我为IIS站点启用了失败请求跟踪,使用默认路径\logs\FailedReqLogFiles。文件夹已创建,但在浏览器中打开上述URL时未生成日志文件。
激活失败请求跟踪

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:55:16