我在Windows上有一个Azure Web应用程序,它运行iisnode与我的Node应用程序进行通信,并且在1001子状态下出现500错误。似乎IIS似乎没有得到Node的响应。我在应用程序设置下设置了NODE_ENV和PORT变量。我还将其剥离到Node Hello World应用程序以最小化变量。节点选择PORT变量并使用正确的端口启动,因为我知道因为我看到std声明应用程序在指定的端口上启动。但是,当我尝试任何请求时,Node似乎从未真正接收到来自iisnode的请求。如果我尝试console.log一条消息,我什么也得不到,我没有看到任何异常,如果它在事情的响应方面,我希望如此。我已经以相同的方式设置了其他应用服务,这似乎工作正常。我尝试从其中一个部署代码,我得到相同的行为。
我试图将以下代码用于最基本的测试
var http = require('http');
// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
console.log('Getting Response');
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
var port = process.env.PORT || '3003';
server.listen(port);
// Put a friendly message on the terminal
console.log("Server running on port " + port);
我收到回复Server running on port 8080
,这让我相信服务器启动正常。但是,我只是在浏览器中获得友好的500.1001响应。从我的角度来看,有什么可能导致这种情况出现的想法与我们现有的许多其他网站的设置相同?
答案 0 :(得分:3)
Azure Web Apps仅支持HTTP端口80和HTTPS流量端口443。要避免此错误,您需要从应用程序设置中删除PORT变量设置,因为Azure已通过变量process.env.PORT
中的端口,并且它实际上不是端口号,而是像{{1 }}。请参阅Node Js RestFull API on Azure,Returns HTTP Error 500.1001 - Internal Server Error。