2011-05-03 11 views
15

... Application_Start 메소드가 다음 요청을 위해 다시 실행될 것인가 아닌가?Application_Start에서 처리되지 않은 예외가 발생하면 어떻게됩니까?

ASP.NET 버전, 호스팅 서버 버전 및/또는 기타 컨텍스트에 따라 다릅니 까?

중요한 어셈블리를로드하는 것이 좋은지 아닌지를 결정하려고합니다. 예를 들어 전체 애플리케이션의 기능에 필수적인 데이터 액세스 어셈블리. 이러한 어셈블리를로드하지 않으면 후속 요청이 쓸모 없게됩니다.

+0

당신은 오류를 처리합니다. 시작시 모든 중요 어셈블리를로드하고,로드 할 다른 중요한 포인트에서 다시 확인합니다. – Aristos

답변

9

Application_Start는 각 웹 응용 프로그램에 대해 한 번만 실행되므로 귀하의 경우 이후 요청에 대해서는 다시 시작되지 않습니다.

일반적으로 try-catch 내에서 응용 프로그램 시작에 한 번 시작 코드를 넣는 것을 선호하며 예외가 있으면 전역 오류 플래그를 설정합니다. 각 BeginRequest에서 플래그가 검사되고 설정되어 있으면 사용자가 사이트가 다운되었음을 나타내는 사용자 정의 오류 페이지로 리디렉션되고 관리자에게 문의하십시오.

+0

"글로벌 오류 플래그 설정"- 무엇입니까? 글로벌 에러 플래그? – Alex

+1

@Alex, 오류 발생시'application_start'에 설정된 global.asax의 간단한 개인 정적 부울 변수입니다. 'BeginRequest'에서 플래그는 응용 프로그램 시작 중에 오류가 있었는지 확인하기 위해 검사되고, 예인 경우 오류 페이지로 리디렉션됩니다. – VinayC

+0

아, 이제 알겠습니다. ASP.NET 플래그로 빌드를 사용한다고 생각했습니다. 감사! – Alex

관련 문제