イベントログ、フォルダ監視サービス作成は、こちらの記事を参照ください。
C#でEvent Logに新しいイベントが発生したときに、それを検知する機能(EventLog.EntryWritten)が、サーバ再起動のタイミングで、過去のイベントも拾ってしまう事象がある。
ウィンドウズのサービスアプリとしてサービスに登録し、新規イベントが発生すると、この機能が呼ばれ、その後のロジックが起動する仕組み。
この問題が起き始めたのが、Windows 2012 R2サーバへアプリを移行したときから発生。
これは、プログラムのバグなのか、サーバのバグなのか、そもそも仕様なのか?
どうもここで書かれている分には、仕様らしいが、今までは起きていなかった事、Windows 2012 R2でも起きないサーバもある事 から、サーバの設定が怪しいのではないかと思うが・・・
ともあれ、過去のイベントはキャッチしたくないので、このようなコードでひとまず回避できるとのこと
if (elEntry.TimeWritten.ToUniversalTime() < DateTime.UtcNow.AddMinutes(-_bufferMins)) return;
//_bufferMinsに任意の無視する時間(分)を入れる