1

さまざまなシステム監視操作を実行する Windows サービスがあります。ただし、SNMP関連するチェックを実行すると、常にNullReference exception.

ユーザー インターフェイス (ユーザー名とパスワード) を介して実行すると、コードは正常に実行されますが、サービスとして実行すると常にエラーが発生します。

私は別のユーザー アカウント (私のものを含む) としてサービスを実行しようとしましたが、うまくいきませんでした。監視コードを(から)SNMPを呼び出すように置き換えてみましたが、同じエラーが発生します。PowerShell cmdlet get-snmp/n NetCmdlets

私が使用しているアプリケーションはPolyMonです。

何か案は?

4

4 に答える 4

2

例外をトリガーする前に、実行中のプロセスにデバッガーをアタッチできます。これにより、アプリケーションの状況をよりよく理解できるはずです。

于 2008-09-07T17:06:45.790 に答える
2

デバッグするいくつかの方法:

  • Windows イベント ログに追加情報はありますか?
  • Windows サービスの Application_Exception のようなある種のグローバル例外イベントをリッスンできるはずです。正確な名前は思い出せませんが、そこからスタック トレースを最後にダンプできます。
  • サービス モードでプロジェクトのデバッグを開始できるはずです。

いくつかのコード スニペット/スタック トレース/情報が役立ちます。

于 2008-09-07T18:00:13.620 に答える
1

私は以前にこの種の問題に取り組んだことがありますが、まだ答えが見つからない場合は、次のことをお勧めします。

  • エラーが stdout や stderr ではなくファイルに記録されるように、使用しているすべてのサード パーティのアプリとライブラリでトレース/ログを有効にします。多くの場合、これらからヒントが得られます。
  • Windows サービスは、起動前に設定された Windows ネットワークに依存している可能性があります。これは、環境(他の人が示唆しているようにPATH)または他のサービスへの「依存関係」が原因である可能性があります。

ジェイ…………

于 2008-09-16T14:31:02.330 に答える
1

私たちが見たいくつかのこと-インタラクティブとサービスの違いについての詳細ですが、役立つかもしれません...

関連性がないように思われることの 1 つは、ユーザー パスとシステム パス上にあるものとの違いです。

私たちが見たもう1つのことは、一時ファイルに関連しています.windows\tempディレクトリにたくさんのサービスを作成していました.65000のようなファイルを作成し、ディレクトリが保持できる限界に達したときにこれを追跡しました. ...

よろしく、クリス

于 2008-09-07T17:53:07.240 に答える