如何在web.config中的处理程序标记中指定文件路径

时间:2018-09-02 04:36:51

标签: node.js azure iis path web-config

我正在尝试在Azure云上运行一个简单的node.js应用程序。

我基本上遵循了以下网站上的说明。

-创建Web应用程序-  https://code.visualstudio.com/tutorials/app-service-extension/create-app

-部署Web应用程序-   https://code.visualstudio.com/tutorials/app-service-extension/deploy-app

为了在Azure(IIS)上运行它,我在根文件夹中添加了web.config和server.js,如下所示。 added 2 files

文件的内容如下。 [web.config]

<configuration>
<system.webServer>
      <handlers>

        <!-- Indicates that the server.js file is a node.js site to be handled by the iisnode module -->
        <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
      </handlers>
      <rewrite>
        <rules>

          <!-- All URLs are mapped to the node.js site entry point -->          
          <rule name="DynamicContent">
            <match url="/*" />
            <action type="Rewrite" url="server.js"/>
          </rule>

        </rules>
      </rewrite>
</system.webServer>
</configuration> 

[server.js] 下面仅显示部分代码。

#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('./app');
var debug = require('debug')('myexpressapp:server');
var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

部署到Azure(IIS)后,Web应用程序成功运行。但是,我想使用bin / www文件而不是server.js。实际上,我通过处理bin / www文件在根文件夹中创建了server.js文件。 为了直接使用bin / www,我如下更改了web.config,但这会导致错误。浏览器显示错误;“您正在寻找的资源已被删除,名称已更改或暂时不可用。”似乎找不到www文件。我写路径的方式不对吗?

<configuration>
<system.webServer>
      <handlers>

        <!-- Indicates that the server.js file is a node.js site to be handled by the iisnode module -->
        <add name="iisnode" path="bin/www" verb="*" modules="iisnode"/>
      </handlers>
      <rewrite>
        <rules>

          <!-- All URLs are mapped to the node.js site entry point -->          
          <rule name="DynamicContent">
            <match url="/*" />
            <action type="Rewrite" url="bin/www"/>
          </rule>

        </rules>
      </rewrite>
</system.webServer>
</configuration> 

我会寻求任何帮助。

1 个答案:

答案 0 :(得分:0)

我能够解决问题。 我将文件夹的名称从“ bin”更改为其他名称,并且可以正常工作。我试图了解为什么名称“ bin”虽然不起作用...是因为“ bin”是服务器保留的一种,无法使用?如果有人可以让我知道任何可能的原因,我会推荐它。