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

问题描述

这是对我的 previous one 的后续问题,重点是当我尝试在配置的 IIS 上为 Node.JS 应用程序调用 DELETE 或 PUT 动词时遇到 404 错误这一事实使用 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 动词)

在那里添加了缺少的动词,如下面的屏幕截图所示并解决了问题。

enter image description here

作为文本,直接在 system.webServerweb.config 内:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...