2012-01-23 16 views
0

ソケットを使用して複数のサーバーに接続するアプリケーションを開発しました。アプリケーションはWI-Fi接続で正常に動作しますが、3g接続でクラッシュします(実際のデバイスではもちろん、エミュレータではすべて正常に動作します)。 wken phoneがPCに接続されているため、デバッグできません。この問題をどのように処理するのですか? ありがとうございます。3Gを使用するとアプリケーションがクラッシュする

答えて

2

Application.UnhandledException(UIスレッド例外の場合)とAppDomain.Current.UnhandledException(未処理のすべての例外の場合)の両方に登録し、プロセスが終了する前にファイルに書き込もうとします。

アプリケーションがクラッシュした後、ISEToolコマンドラインを使用してデータをマシンにコピーし直します。

Application.Current.UnhandledException += (s,e) => 
    WriteExceptionFast(e.ExceptionObject, "ApplicationUnhandled"); 

AppDomain.Current.UnhandledException += (s,e) => 
    WriteExceptionFast(e.ExceptionObject, "AppDomainUnhandled"); 

private void WriteExceptionFast(Exception ex, String name) 
{ 
    string filename = Path.ChangeExtension(name, ".log"); 

    using (var store = IsolatedStorageFile.GetUserStoreForApplication()) 
    using (var stream = store.CreateFile(filename)) 
    using (var writer = new StreamWriter(stream)) 
    { 
     writer.WriteLine(ex.ToString()); 
     writer.Flush(); 
    } 
} 
1

最初に例外をキャッチして読んでください。

Secondy:イントラネットマシンが外部からアクセスされないようにするファイアウォールによって、ソケットに接続できなくなることが予想されます。

関連する問題