5

Windows サービスとしてインストールして実行するアプリを開発しています。まだバグがあり、予期せず停止し (Windows イベント ログにも何も残さず)、再度起動しようとするとエラーが発生しました。

Windows は、ローカル コンピューターで {サービス名} サービスを開始できませんでした。エラー 1067: プロセスが予期せず終了しました。

コンピューターを再起動しました (Server 2008 R2; 違いが生じる場合に備えて仮想マシン)。サービスをアンインストールして再インストールしましたが、それでもエラーが発生します!

マシン上の何かを消去/更新して、サービスを再度開始しようとする必要があります。仮想マシン全体を再構築したくありませんが、アイデアがありません。

アップデート

この Windows サービス (ま​​ったく同じコードとインストール) が、上記のエラーなしで他の 3 台のマシンで実行されていることを忘れていました。ただし、そのデバッガーを OnStart() に入れることは、まだ道のりのように思えます。

4

2 に答える 2

9

コードにアクセスできる場合は、メソッドDebugger.Breakの最初の行にメソッドを追加できますOnStart

アプリケーションに「侵入」したら、例外がスローされた場所を調査します。

于 2012-07-11T20:53:52.840 に答える
1

実行中のサービスにデバッガーを接続できます。詳細については、Windowsサービスアプリケーションのデバッグを参照してください。

問題を簡単に再現できるのは幸運です。問題をデバッグするためのコードを使用して.NETStudioをインストールできます。

もう1つの手法は、サービスを通常のアプリにすることです。疑わしいコードがスタートアップ中にあることを知っています。したがって、スタートアップ関数のコードを使用してアプリを作成し、そこからデバッグを開始するだけです。

幸運を、

トミー・クウィー

于 2012-07-12T22:16:50.453 に答える