ドキュメント ライブラリを取得してドキュメントを配置し、それらを PDF に変換して、毎晩 SQL サーバーに配置する SharePoint タイマー ジョブがあります。問題は、スケジュールで呼び出されたときにタイマー ジョブが機能していないように見えることです。それをインストールして、作成した小さなコンソール アプリを使用すると、正常に動作するジョブで execute を呼び出します。スケジュールどおりに実行されると、そうではありません。
ジョブが実行されていることがわかっている理由:
- タイマー ジョブのステータスは、午前 0 時から 12 分後に完了したことを示しています (午前 0 時に開始)
- ターゲット データベース テーブルが切り捨てられました (ジョブは、エクスポートの前にこれを実行する必要があります)。
何かが間違っていると私が知っている理由:
- データベースは空で、ドキュメントが含まれていません。手動で実行すると、ドキュメントがいっぱいになります
- コードの最初の行がイベント ログに出力されるはずですが、一度も実行されません。ジョブを手動で実行すると、正しくログが数回記録されます。ログへの書き込みをテストする別のタイマー ジョブは、このサーバーで正しく動作します。
今私は、コンソール アプリではなく owstimer で実行しているときにアクセス許可を使用するのは奇妙なことだと考えていました。しかし実際には、最初に行うことは Windows イベント ログに記録することであり、これは発生していませんが、これだけを行うタイマー ジョブでは機能します。そして、発生していないように見えるイベントロギングの後にある切り捨てコードがヒットしています。