【问题标题】:Http TRACE does not implemented on IISIIS 上未实现 Http TRACE
【发布时间】:2021-12-24 19:52:19
【问题描述】:

我在本地 IIS 上创建了一个默认网站,它运行良好。发送 HTTP OPTIONS 请求后,我注意到启用了 TRACE 动词。但是不可能检查这个动词,因为 IIS 返回 501 - Not Implemented 错误。我不完全明白为什么以及如何启用 TRACE 动词进行测试?

选项 追踪

【问题讨论】:

  • 您有实现 TRACE 请求处理程序的代码,例如控制器吗?如果不是,你希望这个电话做什么?可能有一些模块或处理程序报告支持/ 的跟踪,但第二个请求没有命中。
  • docs.microsoft.com/en-us/iis/troubleshoot/… FRT 可以告诉您 501 的来源。那么你可能知道如何解决它。
  • @CodeCaster 好吧,我也没有OPTIONS 的任何控制器。但它有效。据我了解,IIS 应自行处理此请求。
  • AFAIK,IIS 通过询问可以处理的模块/处理程序来处理 OPTIONS 请求。它不会自己实现它。例如,作为 OPTIONS 请求的 CORS 预检需要由 ASP.NET 等应用程序框架处理。
  • @CodeCaster 我记得,如果网络服务器收到一些 TRACE 请求,它应该只返回请求而不做任何更改。不确定我需要一些控制器。特别是因为 ASP.NET 不允许在代码中使用 HttpTrace。 screen

标签: http web iis postman


【解决方案1】:

IIS 默认使用 TRACE 响应 OPTIONS 请求,但不支持开箱即用。你可以remove it from the response entirely,让IIS来执行,如果你想支持也可以自己实现。

你可以通过enabling the verb in Request Filtering (the reverse of what's shown at this link)让IIS来做。

如果你想自己做,它需要像 [HttpMethod("TRACE")] 控制器操作。

【讨论】:

  • 但这很奇怪。 TRACE 响应应与 TRACE 请求相同。不是吗?听起来,我们不需要手动编码。特别是实现继承自 HttpMethodAttribute 的新属性
  • 你想隐藏TRACE,还是支持它?您通常希望隐藏它而不让它返回响应。
  • 我想探索 TRACE。我见过很多解决方案如何禁用它,但从未见过如何在代码中实现它。
  • 我发现有冲突/令人困惑的信息,几乎没有任何在线文档。尝试在站点的请求过滤设置中显式启用动词,并查看 IIS 是否响应它。
  • 就是这样!在Request Filtering 中添加 TRACE 规则后,一切都按预期工作。谢谢你。 Screen
猜你喜欢
  • 2019-07-02
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多