在Windows Azure上托pipe一个nodejs express站点

我基于Durandal的文档创build了一个新的NodeJS站点。 它在本地工作。 我设置了Windows Azure来引入我的GitHub存储库的更改,它正确地执行。

但是,(启用错误后)我得到一个内部服务器错误 。

我检查了我的FTP的日志,但没有任何。 有一个“Git”文件夹,但没有什么有趣的。

当我将我的server.js文件更改为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); 

这是我的server.js现在:

 var express = require('express'), routes = require('./routes'), engines = require('consolidate'); exports.startServer = function(config, callback) { var port = process.env.PORT || config.server.port || 1337; var app = express(); var server = app.listen(port, function() { console.log("Express server listening on port %d in %s mode", server.address().port, app.settings.env); }); app.configure(function() { app.set('port', port); app.set('views', config.server.views.path); app.engine(config.server.views.extension, engines[config.server.views.compileWith]); app.set('view engine', config.server.views.extension); app.use(express.favicon()); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.compress()); app.use(config.server.base, app.router); app.use(express.static(config.watch.compiledDir)); }); app.configure('development', function() { app.use(express.errorHandler()); }); app.get('/', routes.index(config)); callback(server); }; 

那么,是否有人成功地在Windows Azure上托pipe了一个Express(或者更具体地说,是含羞草的Durandal骨架)NodeJS站点? 或者你知道如何或在哪里可以find内部服务器错误?

我已经在Windows Azure平台上推出了几个快速应用程序,发现我有几个相当失败的实例。 我个人发现Jay Harris在这篇文章中提出的方法非常有帮助,因为它允许我导入依赖项(npm,bower或其他)并运行grunt任务来编译项目等。

值得注意的是,通常在新部署之后,只有在控制面板中重新启动Azure服务器之后才会显示更新。 有时部署脚本超时,我不得不定期检查。

这不完全回答你的代码有什么问题(对不起),但我已经发布了一个使用上面提到的方法可能有帮助的例子 。 主要的部署文件是'web.config','deploy.sh'和'.deployment'以及你的'package.json'文件。