2012-07-27 2 views
1

내 페이지에서이 오류가 발생합니다.Azure 공유 라이브러리를로드 할 수 없습니다. nodejs를 사용합니다.

요청을 처리 할 때 iisnode에서 오류가 발생했습니다. HRESULT : 0x2로 HTTP 상태 : 500 enter code here HTTP 이유 : 내부 서버 오류

의 system.webServer/II enter code here snode/@ devErrorsEnabled 구성 설정이 '사실'이기 때문에이 HTTP 200 응답을 받고 있습니다.

node.exe 프로세스의 stdout 및 stderr 로그 외에도 디버깅 및 ETW 추적을 사용하여 문제를 자세히 진단 할 수 있습니다.

표준 출력과 표준 에러로 node.exe 처리에 의해 생성 된 출력의 마지막 64K는 아래와 같다 :

Node.js를 201 투사 전자; // process.nextTick 오류 또는 첫 번째 틱의 'error'이벤트 ^ 오류 : 공유 라이브러리 C : \ DWASFiles \ Sites \ leagues \ VirtualDirectory0 \ site \ wwwroot \ node_modules \ node-sqlserver \ lib \ sqlserver을로드 할 수 없습니다. Module.load (module.js : 348 : 31)의 Object.node (module.js : 472 : 11) 의 노드 Function._load (module.js : 308 : 12) at Module.require module.js : 354 : 17) at request (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 –

답변

1

드라이버를 사용해도이 오류가 발생했습니다.

배포 시간에 자동으로 발생하는 .node 파일을 컴파일하기위한 모든 전제 조건이 없습니다. 나를 위해 일한 무엇

짐 위에서 언급 한 기사에서 미리 컴파일 된 .node 파일 (http://www.microsoft.com/en-us/download/details.aspx?id=29995에서 직접 링크)를 포함하고 sql.js 파일 나란히 node_modules\node-sqlserver\lib 폴더에 넣어했다. 모든 파일 (.node 파일 포함)을 다시 배포하면 좋을 것입니다.

오 - 나는 .node 파일을 컴파일 할 수 없다는 오류가 계속 표시되는 것을 기억하지만 바이너리를 직접 제공 했으므로 어쨌든 OK를 실행하는 것으로 보입니다. 그림보기 ...

+1

Chris, 언급 한 위치에서 .node 파일을 다운로드했는데 오류가 발생합니다. 기본 sqlserver 모듈을 찾을 수 없습니다. node-gyp configure 빌드를 실행하는 것을 잊지 않으셨습니까? 무엇이 잘못 될 수 있습니까? 동일한 파일이 내 컴퓨터에서 잘 작동합니다 – abinop

+0

64 비트 창에서 실행되는 경우에도 iia32 버전을 사용해야한다고 생각했습니다. – jornare

관련 문제