2013-06-13 109 views
4

我想在Windows Azure网站中运行nodeJS站点。我只是git的推两个文件:在Azure网站中运行nodeJS站点

server.js 的package.json

而且我所有的模块从npm install。它工作在当地罚款,但是当我浏览WA网站我只是得到:

The page cannot be displayed because an internal server error has occurred.

我用CLI来获取尾日志,但我只看到这一点:

<h3>HTTP Error 500.0 - Internal Server Error</h3> 
<h4>The page cannot be displayed because an internal server error has occurred.</h4> 
</div> 
<div class="content-container"> 
<fieldset><h4>Most likely causes:</h4> 
<ul> <li>IIS received the request; however, an internal error occurred during the processing of the request. The root cause of this error depends on which module handles the request and what was happening in the worker process when this error occurred.</li> <li>IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.</li> <li>IIS was not able to process configuration for the Web site or application.</li>  <li>The authenticated user does not have permission to use this DLL.</li> <li>The request is mapped to a managed handler but the .NET Extensibility Feature is not installed.</li> </ul> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><h4>Things you can try:</h4> 
<ul> <li>Ensure that the NTFS permissions for the web.config file are correct and allow access to the Web server's machine account.</li>  <li>Check the event logs to see if any additional information was logged.</li> <li>Verify the permissions for the DLL.</li> <li>Install the .NET Extensibility feature if the request is mapped to a managed handler.</li> <li>Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul> 

回答

13

没有看到您的实际server.js代码(你应该插入你的问题),我只能猜测可能是什么问题。所以...我的猜测是你的server.js没有在正确的端口上听(当然,我可能是错的...)。

在该node.js tutorial在Node.js的开发人员部分的WindowsAzure.com网站,有一个“Hello World”的例子,告诉您如何需要从环境抢口:

var http = require('http') 
var port = process.env.PORT || 1337; 
http.createServer(function(req, res) { 
    res.writeHead(200, { 'Content-Type': 'text/plain' }); 
    res.end('Hello World\n'); 
}).listen(port); 

你不能让服务器在端口80上侦听。您需要从process.env.PORT中获取正确的端口。

希望这是你的问题...

+0

工程就像一个魅力 – codelovesme