Windows services Facebook C#sdk发布照片时出现随机异常

Windows services Facebook C#sdk发布照片时出现随机异常,windows-services,facebook-c#-sdk,unhandled-exception,Windows Services,Facebook C# Sdk,Unhandled Exception,我正在使用Facebook C#sdk将照片上传到用户档案中,使用Windows服务作为后台作业。我在我能想到的几乎每个地方都记录了异常,而且在大多数情况下,它运行良好。但偶尔,有时也很频繁,我会遇到以下异常,我的处理程序不会捕获该异常,Windows事件记录器会记录该异常,并终止我的服务: Application: PhotoService.exe Framework Version: v4.0.30319 Description: The process was termin

我正在使用Facebook C#sdk将照片上传到用户档案中,使用Windows服务作为后台作业。我在我能想到的几乎每个地方都记录了异常,而且在大多数情况下,它运行良好。但偶尔,有时也很频繁,我会遇到以下异常,我的处理程序不会捕获该异常,Windows事件记录器会记录该异常,并终止我的服务:

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()方法调用中发生的,但我不知道如何使用有限的stacktrace信息进行故障排除。下面是我的照片发布方法块:

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);
} 
public void postphototimeline(字符串文件名,字节[]照片,EventHandler回调已完成)
{
var _filename=文件名;
var mediaObject=新的FacebookMediaObject
{
ContentType=“image/jpeg”,
文件名=\u文件名
}.SetValue(照片);
_fb.PostCompleted+=回拨完成;
var参数=新字典();
参数[“文件”]=mediaObject;
_fb.PostTaskAsync(“/me/photos”,参数);
} 
我目前最大的问题是,当这个异常发生时,它会终止服务,而且我还没有设置服务监控,所以我无法发现服务已经停止。如果我理解正确的话,这个异常会发生在一个单独的线程中,并且不会被处理,因此会导致整个服务中断。这是正确的吗?你知道为什么会发生这种情况,在哪里,或者以前有人遇到过这种例外吗?我已经阅读了关于“legacyUnhandledExceptionPolicy”的文章来捕捉这些意外的异常。这会阻止我的服务终止吗?使用它是个好主意吗?抱歉,如果我一次问了太多问题,但这些都是相关的,谷歌迄今为止还不是我的朋友。
感谢您提供的任何帮助。

两个月过去了,没有一个答案,因此我将发布我为防止此问题所做的工作,这可能对其他人有用。仍然不知道崩溃的主要原因,但这是偶然的,因此使用标志“legacyUnhandledExceptionPolicy”到目前为止一直有效,没有意外的终止。需要在配置文件中启用该标志:

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

这里有更好的解释: