2016-05-25 10 views
0

Windows Mobile 6.5のC#アプリケーションがあります。問題は、多くの時間(2〜3時間)使用した後、Main()の "NullReferenceException"でアプリケーションがクラッシュすることがあることです。Windows Mobile 6.5のNullReferenceException

AppDomain.CurrentDomain.UnhandledException += 
    new UnhandledExceptionEventHandler(OnUnhandledException); 

アプリケーションがまだぶら下がっている:私は別の例外(ObjectDisposed、NullExceptionと例外)をキャッチするために、メインにテストし、トライキャッチして、すべてのプログラムを持っており、また、私はイベントで試した

使用の時間の後に。誰もがWindowsでDebugDiagのようなこのクラッシュを監視するアプリを知っていますか、またはログにこの例外をキャッチするコードがありますか?次のように主な機能で

コードは次のとおりです。

static void Main() 
    { 
     AppDomain.CurrentDomain.UnhandledException += 
        new UnhandledExceptionEventHandler(OnUnhandledException); 
     try 
     { 

      CLog.EscribirEnLog("Main");    

      using (AppExecutionManager execMgr = new AppExecutionManager(appName)) 
      { 
       if (execMgr.IsFirstInstance) 
       { 

        Application.Run(new FormInicioSesion()); 
        CUtiles.MatarProceso("FoxitReader.exe"); 
        CUtiles.MatarProceso("pimg.exe"); 
       } 
      } 
     } 
     catch (NullReferenceException ex) 
     { 
      CLog.EscribirEnLog("ERROR Null " + ex.StackTrace); 
      Application.Exit(); 
     } 
     catch (ObjectDisposedException e) 
     { 
      CLog.EscribirEnLog("ERROR : Excepcion en main : " + e.StackTrace.ToString() + "; " + e.InnerException.ToString() + "; " + e.Message.ToString()); 

      Application.Exit(); 
     } 
     catch (Exception e) 
     { 
      CLog.EscribirEnLog("ERROR : Excepcion : " + e.StackTrace.ToString() + "; " + e.InnerException.ToString() + "; " + e.Message.ToString()); 
      Application.Exit(); 

     } 
     finally 
     { 
      CLog.EscribirEnLog("Main-Finally"); 
     }   

    } 
+0

感謝をリモートデバッグを使用して、デバッグセッションでアプリケーションを実行しています。私はNullReferenceExceptionの原因とそれを避ける方法を知っていますが、問題はどこに問題があるのか​​わからないため、解決するためにそれをキャッチする必要があるのです。 – Gonzalo

+0

これをキャッチする方法は 'try ... catch'ブロックで行います。あなたの 'try ... catch'コードは何ですか? –

+0

私はコード – Gonzalo

答えて

0

例外のソースを取得する唯一の方法は、次のとおりです。

  1. はのtry..catchで例外をスローすることが、すべてのコードをラップ。
  2. はcatchブロックで例外を注意することは、ログ・ファイルを使用して良いスタートを切っている スタックトレース使用してのInnerExceptionは キャッチを試みるとの主な機能を包む場合
  3. 利用のStackTraceとInnerExceptionプロパティは、どのような例外の詳細 情報を取得しますおよそ
  4. はおそらく ネットワークを経由してあなたの答えのための
+0

でポストを編集しました。ステップ1から3までを実行してステップ4を試みましたが、Windowsモバイルでのリモートデバッグではモバイルがインターネットに接続できません。 – Gonzalo

+0

モバイルネットワークの設定でインターネット接続が可能で、リモートデバッグがモバイル設定によって異なる場合。 「インターネット/仕事に接続する」を参照して、「仕事にする」と「仕事のネットワークを両方ともインターネットに接続する」に設定します。次に、Workに接続するようにネットワークカードを設定します。接続マネージャの設定については、さまざまな情報を参照してください。 – josef

関連する問題