0
我有一個Windows服務輪詢MSMQ隊列並將傳入消息分派給處理程序。當我希望服務關閉時,它不會,除非強制隊列的接收在一段時間後超時。如果我沒有Windows服務控制器將無法終止服務(&我還需要測試我的安裝程序)。在實踐中,這不會成爲問題,因爲隊列將負載很重。但在我的開發環境中,我的事件日誌中出現了大量虛假的錯誤條目。例如:Windows事件日誌中的虛假MSMQ超時錯誤
while (!Signal)
{
try
{
var msg = Queue.Receive(TimeSpan.FromSeconds(1));
if (Signal)
{
EventLog.WriteEntry("LoggingHub",
"Terminating QueueReader for Path [" +
Queue.Path + "]", EventLogEntryType.Information);
return;
}
// etc etc etc
有沒有辦法對我來說,關閉錯誤報告,因爲我認爲這是一個合法使用接收功能的?
我會說設置接收超時將是一個最佳實踐。我發現無限的等待時間並不總是對錯誤狀態做出很好的反應。短暫的超時限制了接收可能失效的時間。 – 2011-01-28 01:50:24