1

現在、Windows サービスをデバッグできるように、コードに次のステートメントがあります。

#If DEBUG Then
        System.Diagnostics.Debugger.Launch()
#End If

これを OnStart メソッドに配置し、サービスを開始すると、Visual Studio のインスタンスにアタッチできます。現在、これが失敗しているインスタンスがあります。サービスを仮想マシンにインストールしましたが、次のエラーが発生します。

MyService.exe [376] で未処理の例外 ('Launch for user') が発生しました。この例外の Just-In-Time デバッグは、次のエラーで失敗しました: ユーザーがログオンしていないため、デバッガーを開始できませんでした。

ローカル マシンでこのようなサービスをデバッグする際に問題が発生したことは一度もないので、何が起こっているのかわかりません。ユーザーは、LocalSystemそれが重要であるかのようにログオンするように設定されています。管理者経由で仮想マシンにログオンしています。

4

1 に答える 1

0

OnStartメソッドに次のステートメントを配置することになりました。

#If DEBUG Then
    While True

    End While
#End If

これにより、Visual Studio のプロセスに手動でアタッチし、while ループにブレーク ポイントを設定できます。ブレークポイントに到達したら、手動で while ループの外に出て、アプリケーションの残りの部分を続行します。

于 2012-10-30T12:02:28.163 に答える