2010-11-19 5 views
0

私はクライアントサーバーアプリケーションを持っています。クライアントは自分のサーバー上のアカウントにログインします。問題は私のサーバがクラッシュすることがあり、try-catch文ですべての種類のラップを取りますが、メッセージは表示されません。クライアント/サーバーアプリケーションがクラッシュする

私が実装したサーバーは、ここにあります:です。

誰でもこのようなクラッシュが発生しましたか?アプリのエラーログを見つけることのできる場所はありますか?

私は絶望的なので、どんなアイデアも素晴らしいだろう。ありがとう。

+0

そして、私はロックステートメントを使用せずに複数のスレッドから変数にアクセスしています。それがクラッシュの問題でしょうか? – Alex

+0

サーバーがクラッシュしたときに、どのようなエラーが表示されますか?そこにスタックトレースがあり、コードのある部分を指しているはずです。問題を見つけたら、問題を引き起こしているコードを自分で見つけてください。 –

+0

いいえ、ありません!それはとても奇妙です!プログラムがちょうどクラッシュする!私はすべての可能性を探しています。サーバーコードが機能しないか、または書いた他のコードに問題があります – Alex

答えて

2

マルチスレッド操作のためにtry-catchブロックですべての関数がラップされていても、未処理の例外が発生するため、アプリケーションがクラッシュする可能性があります。

try 
{ 
    var t = new Thread(()=> 
     { 
      Thread.Sleep(5000); 
      throw new Exception(); 
     }); 
    t.Start(); 
    //t.Join(); 
} 
catch 
{ 
    //you can't deal with exception here 
    //even though you uncomment `t.Join` 
    //the application will crash even there is a try-catch wrapped 
} 
1

Visual Studioでデバッグモードで実行している場合は、CLR例外をユーザーコントロールに伝達できるようにすることを検討することもできます。私は、デフォルトでは無効になっていると考えています。デバッガのフィードバックがなくてもアプリケーションがハングアップすることがあります。 This article on MSDNが対象です。

2

サンプルコードのこの部分を保存しましたか? catch文の直後にConsole.WriteLineを追加してください。

catch 
    { 
     //a socket error has occured 
     break; 
    } 
関連する問題