私は 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
コード内の多くの場所で try catch ブロックを試みましたが、それだけではありません。また、app.cs で中断すると、別のスレッドからエラーが発生したことが示されます。
これは、ユーザーが以前にログインした場合にFacebookログインを呼び出す方法です
FacebookSession facebookSession = await App.FacebookSessionClient.LoginAsync();
そしてすぐに戻り、現在のセッションを提供します。しかし、約 10 秒後にアプリがクラッシュします。そのエラーを正しく処理する方法、またはそれを防ぐ方法を誰かに教えてもらえますか? 私は0.8 facebook SDKバージョンを使用しています。