2014-08-30 4 views
0

WebRole.OnStart()에서 무엇이 잘못 될지 알아 내려고 미쳤습니다. 나는 을 알고 어디에 문제가 발생하는지 알고 있습니다. 난 모르겠다. 무엇 문제입니다.Azure WebRole.OnStart에서 예외를 기록하는 방법

내가의 Web.config에 다음과 같은 추가 :

:

<system.diagnostics> 
    <trace> 
     <listeners> 
     <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, 
      Microsoft.WindowsAzure.Diagnostics, 
      Version=2.4.0.0, 
      Culture=neutral, 
      PublicKeyToken=31bf3856ad364e35" 
      name="AzureDiagnostics"> 
      <filter type="" /> 
     </add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

나는 또한 내가 또한 WebRole 진단에서 사용자 지정 계획을 설정 한 WebRole.OnStart()

Trace.TraceInformation("OnStart()"); 

try 
{ 
    CallMethodThatCausesException(); 
} 
catch (Exception ex) 
{ 
    Trace.TraceError("Exception: " + ex.ToLogString()); 
    throw; 
} 

에 다음을 추가 한

그러나 TableStorage에있는 로그 파일이나 테이블을 찾을 수 없거나 위의 Trace 문 중 하나가 포함 된 BlobContainers의 blob을 찾을 수 없습니다.

나는 WADLogsTable을 볼 수 있지만 보시는 항목은 Loaded "Microsoft.WindowsAzure.ServiceRuntime, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"입니다. 어떤 도움을 크게 감상 할 수

Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileLoadException Stack: at Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.&lt;InitializeRole&gt;b__0() at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart()

: 나는 예외를 참조 할 이벤트 로그 내에서

!

+0

웹 역할에 대한 진단을 구성 했습니까? 웹 역할 (클라우드 서비스 프로젝트의 역할 아래) -> 속성 -> 구성 탭 -> 진단을 마우스 오른쪽 버튼으로 클릭하십시오. –

+0

@GauravMantri 예. 방금 스크린 샷으로 질문을 업데이트했습니다. – devlife

+0

추적 로그 정보는 WADTraceLogs 테이블에 저장됩니다. 진단 정보를 저장하도록 구성한 스토리지 계정에이 테이블이 표시되어야합니다. 당신의 역할은 에뮬레이터뿐만 아니라 클라우드에서만 충돌합니까? 시도 할 수있는 또 다른 방법은 웹 역할에서 원격 데스크톱을 활성화하고 해당 상자에 연결하여 이벤트 로그를 확인하는 것입니다. –

답변

1

http://blogs.msdn.com/b/kwill/archive/2013/08/09/windows-azure-paas-compute-diagnostics-data.aspx의 문제 해결 시나리오를 사용하면 발생하는 모든 역할 시작 유형의 문제를 디버깅 할 수 있습니다. 특히, 발생하는 것과 거의 동일한 시나리오를 통과하는 http://blogs.msdn.com/b/kwill/archive/2013/10/03/troubleshooting-scenario-7-role-recycling.aspx을 확인하십시오.

참조하는 다른 DLL에 배포하려는 2.4 버전보다 오래된 버전의 Microsoft.WindowsAzure.ServiceRuntime에 대한 참조가있는 것으로 의심됩니다. 해당 종속 DLL을 최신 ServiceRuntime으로 업그레이드하거나 구성 파일에 바인딩 리디렉션을 추가하여 해당 종속 DLL이 2.4 ServiceRuntime을 사용하도록 할 수 있습니다.