2012-05-14 2 views
2

프로덕션 환경에서 실행되는 ASP.NET 웹 서비스 (SOAP 스타일)가 있습니다.ASP.NET 웹 서비스에서 Application_Start 메서드가 많이 호출되는 이유는 무엇입니까?

우리 서버 사용자는 Windows 서비스 시작 및 중지 등을 전자 메일을 통해 적절한 당사자에게 보내도록 설정했습니다. 내 ASP.NET 웹 서비스에 대한

최근에 내 상사가 점점 된 이메일 :

The (My Web Service's Name) Application_Start method was called 

지금 나는 여기에서 무슨 일이 일어나고하는 서비스가 서버가 언로드 것을 마지막으로 호출되고 있기 때문에 너무 오래 갔다 있다는 것을 알 그것은 메모리에서 다시 지금 다시로드됩니다 (이 웹 서비스를 사용하는 제품은 인기가 떨어 졌으므로 이론을 너무 오래 가져 오지 않았습니다).

그러나 내 상사는 그가이 이메일을 하루에 수십 번 이상 받고 있다고 말합니다.

위의 이론이 정확할 수 있다고 생각합니다. 특히 웹 계층의 3-4 개 서버에 퍼져있는 상황을 감안할 때 그렇습니다. 왜 이렇게 자주 발생하는지에 대한 다른 설명이 있습니까?

Application_End 전화가 비슷한 이메일을 받았는지 여부 또는 그 비율을 알 수 없습니다.

+1

당신의 이론은 합리적이라고 생각합니다. IIS 설정에서 응용 프로그램 풀 재활용을 확인하십시오. – asawyer

답변

2

<processModel>의 일부 설정을 초과하면 응용 프로그램을 다운로드 할 수 있습니다. 에서는, idleTimeout은 귀하의 경우에 하나가 될 수뿐만 아니라 을 memoryLimit을 requestLimit.

또한 실제 스토리를 기반으로합니다. 스레드를 시작하거나 별도의 스레드 풀 스레드에서 실행하거나 TPL을 사용할 경우 throw 될 수있는 예외가 있는지 확인하십시오. 이러한 스레드에서 캐치되지 않은 예외가 발생하면 작업자 프로세스가 종료됩니다. Windows 이벤트 로그에서 어플리케이션 로그를 점검하십시오. 이 경우 전자 메일이 나가는 시간과 함께 빨간색 아이콘 응용 프로그램 오류 징후가 나타납니다.