如何在不使用 iisnode 的情况下从 IIS/Windows 服务器版 OS 为 NodeJS 应用程序提供服务?
How to serve NodeJS application from IIS/Windows Server Edition OS without using iisnode?
所以,我在 Windows 上编写了一个具有服务器版 OS 的 NodeJS 应用程序,我的应用程序基本上通过使用 NodeJS 子进程执行一些命令来与安装在同一系统中的其他软件进行通信。
在本地主机上一切正常,因为我的服务器有一个静态 IP,我想将应用程序提供给 public。如何在不使用 iisnode 的情况下执行此操作?
我尝试使用 iisnode,但从那时起我就遇到了问题,我可以为我的站点提供服务器,但由于 C 驱动器上的一些权限问题,cmd 命令出现拒绝访问错误。
选项 1:
iisnode provides better control on application pool integration and so on, but since it is a dead project you definitely shouldn't use it any more.
选项 2:
使用 HttpPlatformHandler 启动您的 Node.js 应用,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httppPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</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>
所以,我在 Windows 上编写了一个具有服务器版 OS 的 NodeJS 应用程序,我的应用程序基本上通过使用 NodeJS 子进程执行一些命令来与安装在同一系统中的其他软件进行通信。
在本地主机上一切正常,因为我的服务器有一个静态 IP,我想将应用程序提供给 public。如何在不使用 iisnode 的情况下执行此操作?
我尝试使用 iisnode,但从那时起我就遇到了问题,我可以为我的站点提供服务器,但由于 C 驱动器上的一些权限问题,cmd 命令出现拒绝访问错误。
选项 1:
iisnode provides better control on application pool integration and so on, but since it is a dead project you definitely shouldn't use it any more.
选项 2:
使用 HttpPlatformHandler 启动您的 Node.js 应用,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httppPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</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>