Azure Web部署不显示网页

时间:2016-02-04 10:08:30

标签: node.js azure express azure-web-sites

我正在编写一个简单的nodejs app来部署到azure。

该应用程序正常,100%,但我必须管理管理员事务的网页拒绝加载。

始终显示内部服务器错误。我使用快递和查看日志,但他们没有说有用。该应用程序没有崩溃,所以我不明白为什么它不会显示。

这是我用于测试的简单的hello world代码,甚至不会显示。

var express = require('express');
var app = express();

app.use(express.static('website'));
app.listen(80);

有没有人知道会出现什么问题?

编辑:我忘了包含我设置端口环境变量

var port = process.env.PORT || 80;
var baseHost = process.env.WEBSITE_HOSTNAME || 'localhost';

这就是我的server.js的顶部,对不起。

4 个答案:

答案 0 :(得分:0)

按照此博客获取在Azure上运行的Node.js应用。我最近用它来做一个演示,它运行正常。

Create a Node.js web app in Azure App Service

您必须使用GIT和持续部署才能让Azure应用服务识别并设置适合您的节点应用程序运行的部分,它还会自动为您处理节点包。

希望这有帮助,TehDude

答案 1 :(得分:0)

尝试启用日志记录以更好地了解正在进行的操作

来自How to debug a Node.js web app in Azure App Service

  

要启用stdout和stderr流的日志记录,您必须创建一个   在Node.js应用程序的根目录下的IISNode.yml文件并添加   以下内容:

loggingEnabled: true
     

这样可以从Node.js中记录stderr和stdout   应用

     

IISNode.yml文件也可用于控制是否友好   错误或开发人员错误在失败时返回到浏览器   发生。要启用开发人员错误,请将以下行添加到   IISNode.yml文件:

devErrorsEnabled: true
     

启用此选项后,IISNode将返回最后64K   信息发送到stderr而不是友好的错误,如" an   发生内部服务器错误"。

答案 2 :(得分:0)

猜测您的应用在Azure App Service上运行时正在侦听错误的端口。 您必须从环境变量“process.env.port”获取端口号

var app = require('express')();
var port = process.env.port || 8080; // 8080 for local or whatever number u want
var listener = app.listen(port, function(){
    console.log('Listening on port ' + port); 
});

答案 3 :(得分:0)

在Azure Web Apps服务上运行的Node.js应用程序通过IISNode托管在IIS处理的映射上,这使得命名管道可以接收传入的请求,而不是像在本地运行时那样使用的TCP端口。

此命名管道已定义为Azure Web Apps上Node.js运行时中的端口。您可以在应用中定义端口,例如:process.env.PORT || 3000,您的应用可以在Azure上或本地运行。

相关问题