2011-09-29 3 views
5

하늘빛으로 웹 역할을합니다. 개발 응용 프로그램 패브릭에서 로컬로 제대로 실행되지만 Azure에 배포 될 때 자동으로 실패합니다 (요청에 대한 응답이 전혀 없습니다).Azure 웹 역할이 시작될 때 오류를 추적하는 방법은 무엇입니까?

나는 web.config에서 문제가 있다고 생각하지만 너무 일찍 일어나서 글로벌 asax에서 진단 작업을 수행하기 전에 이미 발생합니다. 말했듯이, 그것은 지역에서 잘 작동하지만 하늘색 시스템에서 전혀 반응이 없습니다.

예외 텍스트, 스택 추적, IIS 응용 프로그램 시스템 오류 로그 또는 실제 문제를 암시 할 수있는 사항을 얻는 것처럼 문제를 해결하기 위해 구체적으로 어떤 것이 잘못된지 어떻게 알 수 있습니까?

답변

4

웹 역할에서 가장 먼저 실행되는 것은 응용 프로그램이 아니라 Azure 프로젝트의 WebRole.cs에있는 OnStart() 메서드입니다. 이 사이트에서 웹 사이트를 모니터링하는 코드를 추가 할 수 있습니다.

표준 기술은 응용 프로그램 추적 로그와 Windows 이벤트 로그를 함께 Azure 테이블 저장소에 복사하여 CPU 사용, IIS 통계 및 what-have-you에 대한 계측과 함께 (적절할 경우) 함께 사용합니다. http://blog.bareweb.eu/2011/01/beginning-azure-diagnostics/

및 응용 프로그램에서 필요합니다 세부 사항에 대한 자세한 내용과 좋은 후속은 여기에 있습니다 : :

이에 대한 좋은 소개는 여기 애저 SDK 1.5에 적용 남아 http://blog.bareweb.eu/2011/03/implementing-azure-diagnostics-with-sdk-v1-4/

.

진단을 캡처 한 후에는 Visual Studio를 사용하여 직접 볼 수도 있고 Cerebrata Azure Diagnostics Manager 같은 도구를 사용하여 자동으로 그래프를 만들고 필터링 할 수도 있습니다. 이 도구는 가장자리가 약간 거칩니다 (특히 여러 인스턴스가있는 대형 시스템의 경우 그래프가 유용하지는 않지만).


대체 방법은 원격 데스크톱을 사용하여 원격 인스턴스에 연결하고 Windows 이벤트 로그 등에서 몇 가지 맞춤법 검사를 수행하는 것입니다. 원격 인스턴스에있는 Internet Explorer 브라우저를 사용하여 응용 프로그램에 로컬로 직접 연결하고 숨겨진 오류 등을 볼 수도 있습니다.

개인적으로 진단 저장소 메커니즘이 작동하지 않는 경우 개인적으로는이 작업을 수행해야합니다. 프로덕션 서버는 외부 공격에 가능한 표면적을 줄이기 위해 원격 데스크톱 액세스를 완전히 해제해야합니다.

+0

원격 데스크톱을 사용하면 오류를 추적 할 수 있습니다. 문제는 응용 프로그램 시작시 어셈블리 참조가 잘못되었습니다 (잘못된 어셈블리 버전). 다른 코드가 실행되기 전에 그 일이 발생했기 때문에 조금 까다 롭지만 sys 로그에서 찾았습니다. –

+0

좋은 캐치, 좋은 점 - 레이더 아래에 몰래 들어가는 사기성 32 비트 어셈블리와 비슷한 문제가있었습니다. –

관련 문제