Node.js 正在尝试从app Service services server.js文件中的子目录运行节点应用

Node.js 正在尝试从app Service services server.js文件中的子目录运行节点应用,node.js,azure,express,Node.js,Azure,Express,我在Azure应用程序服务的子目录中运行节点应用程序时遇到了一个奇怪的问题 我的目录结构是: |common -- common_model.js |client -- angular 2 app js files |server -- server.js with other express app files |web.config 我已将web.config文件配置为将所有请求指向server\server.js文件: <?xml version="1.0" encod

我在Azure应用程序服务的子目录中运行节点应用程序时遇到了一个奇怪的问题

我的目录结构是:

|common
  -- common_model.js
|client
  -- angular 2 app js files
|server
  -- server.js with other express app files
|web.config
我已将web.config文件配置为将所有请求指向server\server.js文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
    <webSocket enabled="false" />
    <handlers>
    <add name="iisnode" path="server\server.js" verb="*" modules="iisnode"/>
    </handlers>
    <rewrite>
    <rules>
        <rule name="DynamicContent">
        <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
        </conditions>
        <action type="Rewrite" url="server\server.js"/>
        </rule>
    </rules>
    </rewrite>
    <security>
    <requestFiltering>
        <hiddenSegments>
        <remove segment="bin"/>
        <add segment="node_modules" />
        </hiddenSegments>
    </requestFiltering>
    </security>
    <httpErrors existingResponse="PassThrough" />
    <iisnode watchedFiles="web.config;*.js"/>
</system.webServer>
</configuration>

在浏览器中加载站点时,将返回server.js的内容,并且不会执行该内容。除了配置为运行此操作的iisnode处理程序之外,我还需要什么呢?

尽管设置了路径:

iisnode模块似乎只与根目录中的server.js文件一起工作。幸运的是,这个解决方案足够简单,只需在根目录中创建一个server.js文件,其中只包含子目录文件。整个文件只有一行:

需要./server/server.js

然后您可以使用默认的iisnode处理程序:


真的很有帮助。节省了很多时间