我正在尝试在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>
我会寻求任何帮助。
答案 0 :(得分:0)
我能够解决问题。 我将文件夹的名称从“ bin”更改为其他名称,并且可以正常工作。我试图了解为什么名称“ bin”虽然不起作用...是因为“ bin”是服务器保留的一种,无法使用?如果有人可以让我知道任何可能的原因,我会推荐它。