2012-07-27 57 views
1

我的頁面出現此錯誤。Azure無法加載共享庫 - 使用nodejs

iisnode處理請求時遇到錯誤。 HRESULT:0X2 HTTP狀態:500 enter code here HTTP原因:內部服務器錯誤

您收到此HTTP 200響應因爲system.webServer/II enter code here snode/@ devErrorsEnabled配置設置是 '真'。

除了node.exe進程的stdout和stderr的日誌之外,還可以考慮使用調試和ETW跟蹤來進一步診斷問題。

由node.exe過程輸出和錯誤產生的輸出的最後64K如下所示:

的node.js:201 擲ë; // process.nextTick錯誤或第一次打勾時發生'錯誤'事件 ^ 錯誤:無法加載共享庫C:\ DWASFiles \ Sites \ leagues \ VirtualDirectory0 \ site \ wwwroot \ node_modules \ node-sqlserver \ lib \ sqlserver。節點 at Module.load(module.js:348:31) at Object.node(module.js:472:11) at Module.require(module.js:308:12) module.js:354:17) at require(module.js:370:17) at Object。 (C:\ DWASFiles \ Sites \ leagues \ VirtualDirectory0 \ site \ wwwroot \ node_modules \ node-sqlserver \ lib \ sql.js:20:11) at Module._compile(module.js:441:26) at Object。的.js(module.js:459:10) 在Module.load(module.js:348:31) 在Function._load(module.js:308:12)

,這是我的服務器代碼.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); 
+0

你是如何部署節點驅動程序的?可能這與您正在運行的接近:https://github.com/WindowsAzure/node-sqlserver/issues/51。如果您還沒有,請查看此博客文章以獲取相關信息和聯繫以獲取幫助:http://blogs.msdn.com/b/sqlphp/archive/2012/06/08/introducing-the-microsoft-driver-for -node-js-for-sql-server.aspx – 2012-08-03 03:36:24

回答

1

我遇到了這個錯誤嘗試了驅動程序了。

原來,我沒有編譯.node文件的所有先決條件,這似乎是在部署時自動發生的。

什麼工作對我來說是包括從文章的預編譯.node文件吉姆上面提到(在http://www.microsoft.com/en-us/download/details.aspx?id=29995直接鏈接),並把它放在node_modules\node-sqlserver\lib文件夾旁邊的sql.js文件。重新部署所有內容(包括.node文件),你應該很好去。

噢 - 我記得仍然看到一個關於無法編譯.node文件的錯誤,但它似乎仍然運行正常,因爲我自己提供了二進制文件。去圖...

+1

Chris,我從你提到的位置下載了.node文件,並得到錯誤 找不到本地sqlserver模塊。你記得運行node-gyp configure build嗎? 什麼可能會出錯?同樣的文件在我的電腦上正常工作 – abinop 2012-09-13 08:41:28

+0

我想我即使在64位窗口上運行也必須使用ia32版本。 – jornare 2013-02-24 20:52:44