3

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

0 回答 0