0

Windows Cashdot을 백그라운드 작업으로 사용하여 사용자 프로필에 사진을 업로드하는 데 Facebook C# SDK를 사용하고 있습니다. 그리고 내가 생각할 수있는 거의 모든 곳에서 예외를 기록하고 있으며, 대부분 잘 작동합니다. 그러나 때때로, 그리고 때때로, 나는 꽤 자주 내 핸들러에 의해 잡힐하지 않으며, Windows 이벤트 로거에 의해 기록됩니다 다음과 같은 예외를 얻을, 내 서비스 종료된다의 모습에서게시 할 때 Facebook C# sdk 무작위 예외

Application: PhotoService.exe  
Framework Version: v4.0.30319  
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Exception  
Stack: 
at System.Net.Security._SslStream.WriteCallback(System.IAsyncResult) 
at System.Net.LazyAsyncResult.Complete(IntPtr) 
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.Net.ContextAwareResult.Complete(IntPtr) 
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*) 
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*) 

을 그것은 FacebookClient.PostTaskAsync() 메서드 호출에서 발생하지만 제한된 스택 추적 정보로 문제를 해결하는 방법을 알지 못합니다.

public void PostPhotoToTimeline(string filename, byte[] photo, EventHandler<FacebookApiEventArgs> callbackCompleted) 
{ 
    var _filename = filename; 
    var mediaObject = new FacebookMediaObject 
    { 
     ContentType = "image/jpeg", 
     FileName = _filename 
    }.SetValue(photo); 

    _fb.PostCompleted += callbackCompleted; 
    var parameters = new Dictionary<string, object>(); 
    parameters["file"] = mediaObject; 

    _fb.PostTaskAsync("/me/photos", parameters); 
} 

순간에 나의 가장 큰 문제는,이 예외가 발생하면,이 서비스를 종료하고, 내가 서비스 모니터링은 아직 설정하지 않는, 그래서 나를 위해 어떤 방식 : 다음은 내 사진 게시 방법 블록 서비스가 중지되었는지 확인하십시오. 올바르게 이해하면이 예외는 별도의 스레드에서 발생하며 처리되지 않으므로 전체 서비스가 중단됩니다. 이 올바른지? 왜 이런 일이 일어날 지, 그리고 전에 어디에서이 예외를 겪었는지 아는 사람이 있습니까? 이러한 예기치 않은 예외를 잡으려고 'legacyUnhandledExceptionPolicy'에 대해 읽었습니다. 이로 인해 내 서비스가 종료되지 않으며 사용하는 것이 좋은가요? 미안 한 질문에 너무 많은 질문을하는 경우이 모든 것들이 관련되어 있으며 Google은 지금까지 내 친구가 아니 었습니다. 제공 할 수있는 도움에 감사드립니다.

답변

1

2 개월이 지나고 하나의 답변이 없으므로 다른 사람들에게 유용 할 수있는이 문제를 방지하기 위해 내가 한 일을 게시 할 것입니다. 그래도 충돌의 주된 원인을 알지 못하는 경우가 있습니다. 가끔 "legacyUnhandledExceptionPolicy"플래그를 사용하면 예기치 않은 종료가 발생하지 않았습니다.

<runtime> 
<legacyUnhandledExceptionPolicy enabled="1"/> 
</runtime> 
여기

더 나은 설명 : MSDN Reference

플래그는 설정 파일에서 활성화해야합니다