2010-07-06 3 views
2

최근 Microsoft의 MVC 프레임 워크 (v2)에서 인트라넷 용 내부 웹 응용 프로그램을 개발했습니다. 이것은 훌륭하게 작동하는 것처럼 보입니다. 그러나 아직 알려지지 않은 이벤트가 발생한 후에도 데이터베이스 쿼리가 결과를 나타내지 않는 상황이 발생하는 반면 어떤 예외도 잡히지 않아 다소 다소 혼란 스러웠습니다.예외를 발생시키지 않는 MVC 응용 프로그램이있는 상황을 디버그하는 방법

응용 프로그램을 다시 게시해도 동작은 변경되지 않지만 응용 프로그램 풀을 다시 시작하면 기능이 완전히 복원됩니다.

완벽을 기하기 위해 MVC 응용 프로그램 전용 응용 프로그램 풀을 사용하고 SQL 인증을 사용하여 SQL Server에 연결합니다. SQL 인증은 웹 서버가 멍청이가되는 동안 다른 호스트에서 작동합니다. 던져진 예외는 보이지 않습니다 (우리는 아무 것도 잡히지 않습니다. 처리되지 않은 예외 마법으로 만들어져 아무것도 잡히지 않습니다). 우리는이 인스턴스에서 SQL에 LINQ를 사용하지 않고 ADO.Net을 사용하여 SqlConnection/SqlCommand/저장 프로 시저를 사용합니다. 연결에 실패하거나 저장 프로 시저가 실패한 경우 예외가 발생할 것으로 예상됩니다. 응용 프로그램을 프로파일 링했는데 이 나타나 리소스가 누출되지 않습니다.

나는 모든 각도를 다루었다고 생각하지만, 문제의 원인을 찾기위한 법의학에 들어가기 위해 내가 어디에서보아야합니까?

편집 : 내가 아마 우리가 NTLM 인증을 사용하고, (다시로드 할 수있는 응용 프로그램을 강제)에서 web.config를 편집 같은 트릭을하고 아무 효과가 없습니다 있다는 것을 언급해야한다 - 우리는 전체 응용 프로그램 풀을 재활용해야 고치다.

+0

모든 데이터베이스 연결을 완료 했습니까? 당신이 풀링 된 연결을 다 떨어지면 예외가 생길 것입니다. 그러나 물어 볼 가치가 있습니다 ... – GalacticCowboy

+0

정말 명백한 제안이지만, 경우에 따라 ... 만료되었지만 다시 채워지지 않은 캐싱 레이어가 있습니까? –

+0

@GalacticCowboy 모든 Sql 개체는 사용하여 포장되며 가능한 한 빨리 처리됩니다. –

답변

1

SQL profiler을 사용하여 비정상 동안 데이터베이스 트래픽을 모니터링 해 보셨습니까?

+0

우리는 프로파일 링을 시도했으며, 요청이 끝난 것을보고있다. 문제가 없다고 보인다. 로컬 친숙한 DBA 나중에) –

+0

중요한 결과를 가져 오는 응용 프로그램의 경로가 있으므로로드되지 않았으므로 지연 초기화 된 정적 속성이 정크. –

관련 문제