私はタイマーで動作し、処理するリモートディレクトリのファイルを探すvb.netでカスタムWindowsサービスを構築しました。いくつかのサーバーでは、VSSサービスが失敗したときに午後10時04分頃、同じ時刻に何のエラーもなく失敗します。サービスエラーは次のようになります。VSSバックアップが原因でカスタムWindowsサービスが失敗する
'プロセスは、別のプロセスによって使用されているため、filename.txtファイルにアクセスできません。
時々エラーはありませんが、サービスがハングします。私はこれがVSSサービスであると仮定しています。それにもかかわらず、CPUには最大100%の膨大なスパイクがあります。 私はすべてのアクティビティを私に中継するログ(つまり上に書いたファイルはありません)を持っています。また、各プロセスはtry..catchでラップされています。これの何も来ません。プロセスは通常、ポーリングタイマーで、時には警告なしで処理の途中で、コードのランダムな部分で失敗します。サービスはハングアップしますが、まだservices.mscで動作していると言います。
誰でもこの問題を経験したことがありますか?私はサービスをマルチスレッドにすることを考えていたので、あるスレッドがハングしても問題が解決するかどうかは分かりません。私たちはサーバーに多くのリソースを提供しようとしましたが、これは少し助けてくれたようですが、問題を完全には解決していません。ある日は過負荷になり、他の人はそれをやりません。 Windows Server 2008 x64を使用しています。
ご協力いただきありがとうございます!
Public Shared aTimer As New Timers.Timer
Public Shared Sub SetTimer()
aTimer.Interval = 60000
' Hook up the Elapsed event for the timer.
AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
aTimer.Enabled = True
End Sub
' The event handler for the Timer.Elapsed event.
Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
Dim gen = New Service1
aTimer.Enabled = False
gen.ProcessEvents() 'This is the main function of the service
aTimer.Enabled = True
End Sub