少し前に開発された、離れたサーバーでスケジュールされたタスクを多数使用する 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 が問題である可能性があります。
誰かがこれを取得したことがありますか?これを修正する方法はありますか? または、プロセスの開始であり、資格情報があれば、離れたサーバーからタスクを正しく開始する他の方法はありますか...?
問題を診断するためにサーバーでチェックしたいその他のシンはありますか? ありがとう、