HTTP 错误 400.605。在 IIS 上部署 NodeJS 应用程序
HTTP ERROR 400.605. Deploying NodeJS app on IIS
我在将我的应用程序部署到 IIS 服务器时遇到错误。我使用 URL Rewrite 和 IISNode。我给了 IUSR 和 IIS_IUSRS 的所有权限,我遇到了很多错误,但我不能通过这个。我将非常感谢你的帮助。
I've got this error
我的 web.config 文件如下所示:
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="src/app.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="app">
<match url="/*" />
<action type="Rewrite" url="src/app.js" />
</rule>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8080/{R:1}" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
我的 app.js 文件如下所示:
const express = require('express');
const cors = require('cors');
const app = express();
app.get('/', (req, res, status)=>{
return res.status(200).json({
"message": "Hello world!"
});
});
app.use(cors());
app.use(express.json());
app.listen(8080, () => {
console.log('App listening on port 8080')
});
从报错信息分析可以确定问题是ARR模块请求异常导致的,主要是URL重写规则的语法错误,会导致这个 400.605 错误。建议使用排除法,先禁用所有ARR规则,再逐步梳理有语法问题的规则。
这里是同一个问题,您可以作为参考:ARR The request cannot be routed because it has reached the Max-Forwards limit. The server may be self-referencing itself in request routing topology。
我在将我的应用程序部署到 IIS 服务器时遇到错误。我使用 URL Rewrite 和 IISNode。我给了 IUSR 和 IIS_IUSRS 的所有权限,我遇到了很多错误,但我不能通过这个。我将非常感谢你的帮助。
I've got this error
我的 web.config 文件如下所示:
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="src/app.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="app">
<match url="/*" />
<action type="Rewrite" url="src/app.js" />
</rule>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8080/{R:1}" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
我的 app.js 文件如下所示:
const express = require('express');
const cors = require('cors');
const app = express();
app.get('/', (req, res, status)=>{
return res.status(200).json({
"message": "Hello world!"
});
});
app.use(cors());
app.use(express.json());
app.listen(8080, () => {
console.log('App listening on port 8080')
});
从报错信息分析可以确定问题是ARR模块请求异常导致的,主要是URL重写规则的语法错误,会导致这个 400.605 错误。建议使用排除法,先禁用所有ARR规则,再逐步梳理有语法问题的规则。
这里是同一个问题,您可以作为参考:ARR The request cannot be routed because it has reached the Max-Forwards limit. The server may be self-referencing itself in request routing topology。