2011-07-18 11 views
3

Windows Phone 7アプリケーションで、アプリケーションが終了するときにWCF呼び出しを行いたいとします。私はそれが空だが、このスタックトレースがある例外メッセージを検査する場合Windows Phoneアプリケーションが終了しているときに非同期呼び出しを行う方法

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
    { 
     if (Debugger.IsAttached) 
     { 
      // An unhandled exception has occurred; break into the debugger 
      Debugger.Break(); 
     } 
    } 

:私は電話をかけるとき はしかし、アプリケーションがでアップを終了します。

at System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously) 
at System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously, Exception exception) 
at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStreamAsyncResult.OnGetRequestStream(IAsyncResult result) 
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass6.<InvokeGetRequestStreamCallback>b__4(Object state2) 
at System.Threading.ThreadPool.WorkItem.doWork(Object o) 
at System.Threading.Timer.ring() 

私の呼び出しの周りにtry/catchブロックを追加しようとしましたが、それでも同じ方法で終了します。

どのようにして正常に電話をかけることができますか?

+0

「閉じる」と言うときに使用するので、これはできないことを願っています。つまり、「近いうちに」という意味です。 –

答えて

4

いいえ、アプリが終了しているときに非同期呼び出しを行うことはできません。アプリケーションが終了したときに何かを送信する必要がある場合は、隔離されたストレージに書き込んでから、次にアプリケーションを起動するときに送信する必要があります。これは、セッション終了時間を記録するための分析フレームワークの一部です。

+0

ありがとうございます。私もこのソリューションについて知っていましたが、私はそれを実装します。 – alexandrekow

1

コードにunhnadled excpetionハンドラが表示されているので、アプリが終了するたびに例外が発生したときに呼び出すことを前提としています。

Do not!
未処理の例外が発生した場合は、詳細を保存してから、次にアプリケーションを起動したときに送信する必要があります。あなたは送信がどれくらいかかるか分からず、この間にアプリが分解される可能性があります。
処理されていない例外ハンドラでEmailComposeTaskを開くと、多くの人が間違いを犯します。

関連する問題