2012-09-06 4 views
1

iisnode를 사용하여 node.js 응용 프로그램을 실행하고 있습니다. 그러나 약 1 시간 후에 node.exe 프로세스가 실행을 멈 춥니 다 (몇 초마다 데이터베이스에서 데이터를 가져 오는 setInterval() 메소드가 있기 때문에 실행해야합니다). 어떤 충고?IISNode 프로세스에서 node.exe 프로세스가 실행을 중지합니다.

또한 process.env.PORT로 서버를 설정하면 클라이언트 측에서 socket.io를 사용하여 서버에 어떻게 연결합니까? 나는 응용 프로그램이 iisnode를 사용하여 IIS에서 호스팅되는 경우이 socket.io에 대한 올바른 구성입니다

io.configure(function() { 
    io.set("transports", ["xhr-polling"]); // no websockets 
    io.set("polling duration", 10); 
    io.set("log level", 1); // no debug msg 
}); 

답변

3

사용해야하는 것으로 알고 있습니다. 클라이언트 측에서는 IIS가 공개하는 엔드 포인트의 일반 HTTP 주소를 사용하여 서버에 연결합니다. socket.io를 바로 사용할 수 있으려면 node.js 응용 프로그램을 웹 사이트의 가상 디렉터리가 아닌 IIS WebSite로 호스팅해야합니다. 응용 프로그램은 http://foobar.com/myapp/이 아닌 http://foobar.com/으로 주소 지정이 가능해야합니다.

node.exe 프로세스가 실행을 멈춘다는 말은 종료되고 사라 지거나 중단된다는 의미입니까? IIS는 일정 기간 사용하지 않으면 (이 서버를 대상으로하는 HTTP 요청이 도착하지 않은 경우) 작업자 프로세스 (생성 한 모든 하위 프로세스 포함,이 경우 node.exe)를 종료합니다. 해당 기간의 기간은 응용 프로그램 풀 설정에서 구성 할 수 있습니다.

코드를 주기적으로 실행해야하는 응용 프로그램의 논리에 의존하는 경우 프로세스 수명이 HTTP 메시징과 긴밀하게 연결되므로 IIS 자체에서 최상의 호스팅 모델을 제공하지 않습니다. 내구성이 뛰어난 서버 (예 : Windows 서비스, 체크 아웃 http://nssm.cc/) 또는 웹 크론의 일부 형태가 필요합니다.

+0

토마스, 빠른 응답에 감사드립니다! – victormejia

+1

안녕하세요, Tomasz, 유휴 시간 제한을 사용하지 않도록 앱 풀을 구성했지만 2 일 후에 실행이 중지되었습니다. 어떤 아이디어? – victormejia

+0

같은 문제가 있습니다. 심지어 HTTP 방문 페이지를 만들었습니다. 애플리케이션이 5 분마다 HTTP를 통해 자체 요청하지만 여전히 잠시 후에 종료됩니다. –

관련 문제