我正在尝试将 nodejs 应用程序从我的开发机器传输到我们的 IIS 服务器。它在我的机器上运行得非常好,但是当我将它传输到 IIS 时总是得到 404。
目录结构是这样的:
C:\Programs Files\iisnode\wwww
└ mysite
├ public
│ ├ app
│ ├ css
│ ├ js
│ └ index.html
├ web.config
└ server.js
当我去:localhost/node/mysite
我得到一个404。
这是我的内容web.config
:
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
</handlers>
<!-- Tell iisnode where node.exe is located -->
<iisnode nodeProcessCommandLine="C:/Program Files/nodejs/node.exe"/>
<!-- Redirect all requests to server.js -->
<rewrite>
<rules>
<rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^[a-zA-Z0-9_\-]+\.js\.logs\/\d+\.txt$"/>
</rule>
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^server.js\/debug[\/]?"/>
</rule>
<rule name="StaticContent">
<action type="Rewrite" url="public{REQUEST_URI}"/>
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="server.js"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我尝试通过在它们前面加上前缀来更新我的快速路线,node/mysite
但这并没有奏效。
我可以告诉该节点正在接收请求,因为我已将其设置为记录所有请求,并且日志文件中有以下内容:
Server started on //.pipe/<some long code>
GET /node/mysite