4

我正在制作 Windows Phone 8 应用程序,它使用 facebook 登录来识别用户。当他们第一次登录时,他们会看到 facebook 登录对话框,但下次用户启动应用程序登录时会在后台发生。当手机连接到互联网时效果很好但是如果我关闭网络并尝试启动应用程序 FacebookSessionClient.LoginAsync 方法正常返回我的会话并且应用程序继续它是正常流程。但是突然我在我的 App.cs 类上遇到了未处理的异常。


这是我的堆栈跟踪:

 $exception {System.Reflection.TargetInvocationException: An exception occurred during the operation, making the result invalid.  Check InnerException for exception details. ---> Facebook.WebExceptionWrapper: The remote server returned an error: NotFound. ---> 

System.Net.WebException: The remote server returned an error: NotFound.
       at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
       at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState)
       at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)
       --- End of inner exception stack trace ---
       --- End of inner exception stack trace ---
       at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
       at Facebook.OpenReadCompletedEventArgs.get_Result()
       at Facebook.Client.FacebookSessionClient.<SendAnalytics>b__0(Object o, OpenReadCompletedEventArgs e)
       at Facebook.HttpHelper.OnOpenReadCompleted(OpenReadCompletedEventArgs args)
       at Facebook.HttpHelper.ResponseCallback(IAsyncResult asyncResult, Object userToken)
       at Facebook.HttpHelper.<>c__DisplayClass2.<OpenReadAsync>b__0(IAsyncResult ar)
       at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass1d.<InvokeGetResponseCallback>b__1b(Object state2)}  System.Exception {System.Reflection.TargetInvocationException

我已经尝试尝试在我的代码中阻止很多地方,但我并没有止步于此。此外,当它在 app.cs 上中断时,它表明错误来自另一个线程。

如果用户之前登录,这就是我调用 facebook 登录的方式

 FacebookSession facebookSession = await App.FacebookSessionClient.LoginAsync();

它立即返回并给出当前会话。但大约十秒钟后,应用程序崩溃了。谁能给我一个提示,我该如何正确处理该错误或如何防止该错误?我使用 0.8 facebook sdk 版本。

4

1 回答 1

0

检查这个问题:Facebook Wrap Exception Wrapper

这是已经在 GitHub 存储库中修复但尚无法通过 NuGet 获得的相同错误。您的问题的解决方案是从源代码构建 Facebook.Client,而不是使用 NuGet 下载它。

于 2013-10-28T07:27:12.350 回答