私は、実際にはWindowsサービスである製品の拡張機能を開発しています。Visual Studioからサービスに接続していますが、デバッグの数分後にサービスが機能しなくなるため、最初からデバッグを開始するか、すべてを高速に実行する必要があります。
私は魂が存在するはずだとかなり確信しています。誰か助けてもらえますか?
私は、実際にはWindowsサービスである製品の拡張機能を開発しています。Visual Studioからサービスに接続していますが、デバッグの数分後にサービスが機能しなくなるため、最初からデバッグを開始するか、すべてを高速に実行する必要があります。
私は魂が存在するはずだとかなり確信しています。誰か助けてもらえますか?
ライブサービスにデバッガーを接続するのは良い考えではないと思います。サービスマネージャは、サービスがステータス要求と制御信号に迅速に応答することを期待しています。これは、サービスがシングルステップであるか、その他の方法で干渉されている場合、サービスは実行できません。
サービスをデバッグするための通常の手順は、実行可能ファイルに、必要に応じてサービス制御信号をエミュレートするためのメカニズムを備えた、通常のアプリケーションとして実行できるコマンドラインオプションを設定することです。その後、他のアプリケーションをデバッグするのと同じ方法でデバッグできます。
ライブサービスでデバッグを実際に実行する必要がある場合の代替手段は、仮想マシン(または別の物理マシン)でサービスを実行し、カーネルデバッガーを使用することです。
Windowsサービスが停止する主な理由は2つあります
1)それは彼らの仕事を終えてあなたのコードを実行します、それはあなたのコードがタイマー、無限ループ、またはバックグラウンドワークをしないことを意味します
2)例外が発生し、サービスが機能しなくなります。つまり、コード全体に大きなtry \ catchを入れて、エラーの場所を追跡し、サービスが停止しないようにする必要があります。