1

少し前に開発された、離れたサーバーでスケジュールされたタスクを多数使用する Windows サービスがあります。これは悪い考えのように思えるかもしれませんし、おそらくそうかもしれませんが、システムをアクティブ化するためだけにそのように機能する別の会社と協力しているため、実際にはそれを使用する以外に選択肢はありません.

これを実現するために、離れた別のサーバーで簡単にサービスを開始できる SCHTASKS コマンドを使用するように指示しました。次に、この呼び出しの出力をログに保存します。通常、次のようになります。

2012-02-06 09:40:55 : SUCCESS: Attempted to run the scheduled task "W_PALREI".

これは、すべてが良好なときに受け取る通常のメッセージです。時々これを取得します:

2012-02-20 15:53:29 : INFO: scheduled task "W_PALMO2" is currently running.
SUCCESS: Attempted to run the scheduled task "W_PALMO2".

タスクには時間がかかる可能性があり、すぐに利用できるようになることがわかっているため、これはまだ深刻なことではありません。時々これを取得します:

2012-02-13 08:50:03 : INFO: Scheduled task "W_PALMO2" has already been disabled.

これは良くありませんが、誰かが他のサーバーのタスクを無効にしたことを意味することがわかっているので、それに応じて対処できます。

ここが変なところです。しばらくすると (実行を続けて約 2 週間)、タスクが応答しないことに気付きました。チェックするたびに、すべてが正常に実行されているように見えました (サービスは実行されており、データベースのコンテンツが処理されていることがわかりました) が、タスクはまだ開始されていません。ログ ファイルを確認したところ、次のことがわかりました。

2012-02-22 15:50:15 : ERROR: Class does not exist.

しばらくすると、次のメッセージが表示されました。

2012-02-22 15:21:15 : ERROR: Not enough storage is available to process this command.

その後、他のメッセージが表示されます。しばらくすると、これが得られます

2012-02-22 16:32:38 : 

Process.Start が出力を取得しなくなったか、SCHTASKS がそれを送信しなくなったか、何らかの理由でプロセスが呼び出されなくなったかのいずれかを意味します。Google で調べましたが、SCHTASKS がこれを発行していることについて実際には何も見つからないため、process.start が問題である可能性があります。

誰かがこれを取得したことがありますか?これを修正する方法はありますか? または、プロセスの開始であり、資格情報があれば、離れたサーバーからタスクを正しく開始する他の方法はありますか...?

問題を診断するためにサーバーでチェックしたいその他のシンはありますか? ありがとう、

4

1 に答える 1

1

または、それはプロセスの開始であり、資格情報を持っていれば、離れたサーバーからタスクを正しく開始する他の方法はありますか?

プロセスをリモートで開始する方法はいくつかあります...いくつかのオプションが思い浮かびます。

  • PowerShellスクリプトのリモート実行。ただし、会社がリモートの場所からスケジュールされたタスクを自動化するようにしている場合、それらが精通している、および/または実行のためにこれを設定する意思があるという可能性は高くありません。
  • Process.Start呼び出しは正確にどのように見えますか?この呼び出しを構成する他の方法があるかもしれません。

誰かがリモートマシンでさらに診断を行う必要があります。または、n日ごとにマシンの電源を入れ直す計画を立てるだけです。

見るべきいくつかの場所:

  • イベントログ。エラーがそこに記録されているかどうかを確認します。
  • PerfMon。メモリ使用量を監視して、メモリがクリーンアップされていないかどうかを確認します。
于 2012-03-15T14:37:26.120 に答える