我正在尝试将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