gpt4 book ai didi

node.js - 使用 HttpPlatformHandler 在 iis 上运行 node.js 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:15 27 4
gpt4 key购买 nike

我正在尝试在 iis 上运行“Hello World”示例 node.js 服务器:

var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {"Content-Type":"text/plain"});
res.end("Hello World\n");
})
server.listen(3000);
console.log('server is running');

使用此 web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<httpPlatform stdoutLogEnabled="true" stdoutLogFile="node.log" startupTimeLimit="20" processPath="C:\Program Files\nodejs\node.exe C:\Users\username\Tests\nodeHandlerTest\app.js">
<environmentVariables>
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>

但它不起作用!知道我的 web.config 文件有什么问题吗?

最佳答案

  • 对于端口,模块将在您可以使用 %HTTP_PLATFORM_PORT% 访问的随机端口上启动进程。因此,您应该将其映射到 Node 环境变量,否则当 IIS 回收时尝试启动多个 Node 进程时,您将收到地址使用错误。
  • 应在 arguments 属性中指定 app.js 的路径。

所以你的app.js应该是这样的:

var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {"Content-Type":"text/plain"});
res.end("Hello World\n");
})

var port = process.env.PORT || 3000;
server.listen(port);
console.log('server is running on port: ' + port);

web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<httpPlatform
stdoutLogEnabled="true"
stdoutLogFile=".\node.log"
startupTimeLimit="20"
processPath="C:\Program Files\nodejs\node.exe"
arguments=".\app.js">
<environmentVariables>
<environmentVariable name="PORT" value="%HTTP_PLATFORM_PORT%" />
<environmentVariable name="NODE_ENV" value="Production" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>

请注意,从 v1.2 开始,如果路径以“.”开头,则支持相对路径该路径被认为是相对于站点根目录的,因此日志和 app.js 文件的 .\ 。更多信息here .

关于node.js - 使用 HttpPlatformHandler 在 iis 上运行 node.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33615918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com