URL 用 iisnode 重写动词 PUT 和 DELETE 的情况

URL Rewrite in case of verbs PUT and DELETE with iisnode

这是我的 的后续问题,重点是当我尝试为 Node.JS 调用 DELETE 或 PUT 动词时遇到 404 错误IIS上的应用配置了iisnode和URL重写如下:

<handlers>
  <add name="iisnode" verb="*" path="app.js" modules="iisnode" />
</handlers>

<rewrite>
  <rules>
    <rule name="my app rule" stopProcessing="true" patternSyntax="Wildcard">
    <match url="*" />
    <action type="Rewrite" url="app.js" />
  </rule>
  </rules>
</rewrite>

甚至没有调用脚本 app.js,url 也没有被重写。

这是一个众所周知的错误还是我还应该做什么?

GET 和 PUT 动词没有问题(当然我已经使用后者实现了解决方法)。

这是由于 IIS 的请求过滤(选项卡 HTTP 动词)

如下面的截图所示添加了缺失的动词,问题解决了。

作为文本,直接在 web.configsystem.webServer 内:

<security>
    <requestFiltering>
        <verbs>
            <add verb="PUT" allowed="true" />
            <add verb="DELETE" allowed="true" />
        </verbs>
    </requestFiltering>
</security>