1

我的页面上有这个错误。

iisnode 在处理请求时遇到错误。HRESULT:0x2 HTTP 状态:500 enter code here HTTP 原因:内部服务器错误

您收到此 HTTP 200 响应是因为 system.webServer/ii enter code heresnode/@devErrorsEnabled 配置设置为“true”。

除了node.exe进程的stdout和stderr的日志,考虑使用debugging和ETW traces来进一步诊断问题。

node.exe进程生成到stdout和stderr的最后64k输出如下图所示:

node.js:201 抛出 e;// process.nextTick 错误,或第一次滴答时的“错误”事件 ^ 错误:无法加载共享库 C:\DWASFiles\Sites\leagues\VirtualDirectory0\site\wwwroot\node_modules\node-sqlserver\lib\sqlserver.node at Object..node (module.js:472:11) 在 Module.load (module.js:348:31) 在 Function._load (module.js:308:12) 在 Module.require (module.js:354: 17) 在 Object 的 require (module.js:370:17) 处。(C:\DWASFiles\Sites\leagues\VirtualDirectory0\site\wwwroot\node_modules\node-sqlserver\lib\sql.js:20:11) 在 Module._compile (module.js:441:26) 在 Object..js (module.js:459:10) 在 Module.load (module.js:348:31) 在 Function._load (module.js:308:12)

这是我的 server.js 代码

var sql = require('node-sqlserver');
var conn_str = the value of ODBC in Connection Strings;
var http = require('http');
var port = process.env.port;
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write("start");
res.end("finish");
sql.query(conn_str, "SELECT * FROM GAME_PARTICIPANT", function(err, results) {
    if (err) {
        res.writeHead(500, {'Content-Type': 'text/plain'});
        res.write("Database Error: " + err)
        res.end("");
        return;
    }
    res.writeHead(200, {'Content-Type': 'text/plain'});
    for (var i = 0; i < results.length; i++) {
        res.write("ID: " + results[i].PlayerID + " GameID: " + results[i].GameID + " Team: " + results[i].Team + " Confirmed: " + results[i].Confirmed + " RoleID: " + results[i].RoleID);
    }
    res.end("; Done.");
});
}).listen(port);
4

1 回答 1

1

我在尝试驱动程序时也遇到了这个错误。

事实证明,我没有编译.node文件的所有先决条件,这似乎在部署时自动发生。

对我有用的是包含.node吉姆上面提到的文章中的预编译文件(直接链接在http://www.microsoft.com/en-us/download/details.aspx?id=29995)并将其放入node_modules\node-sqlserver\lib文件旁边的文件夹sql.js。重新部署所有内容(包括.node文件),您应该一切顺利。

哦 - 我记得仍然看到一个关于无法编译.node文件的错误,但它似乎运行正常,因为我自己提供了二进制文件。去搞清楚...

于 2012-08-03T04:01:07.340 回答