2013-04-29 55 views
1

我有一個場景,我有一個窗口服務正在運行。每當我的asp.net網站發生特定異常時,我會調用窗口服務或從asp.net web向我的窗口服務發送消息,並且窗口服務會在收到該消息時生成一封電子郵件。這種情況下最好的解決方案是什麼?我應該使用某種類型的wcf服務或共享數據庫嗎?請在這方面指導我。發送消息給Window Service來自Asp.net?

回答

0

您的要求與使用MSMQ發送消息的方式非常相似。你需要一個共享的地方,你可以從你的asp.net發佈異常,它會被服務挑選出來。有不同的選項可供選擇。其中之一是使用MSMQ,您可以將數據發佈到隊列中,並且您的服務可以讀取它。如果你有興趣安裝MSMQ及其編碼方面。數據庫將是最好的解決方案。有一個表格,您可以在其中記錄包含所有信息的異常消息。現在您的服務將選擇記錄並對其進行處理並將其標記爲完整。您可以通過兩種方式來完成,無論是在處理後刪除記錄,這將使您的數據庫非常輕巧,快速地處理。其他方法是保持一個標誌,狀態如POSTED,PROCESSING和COMPLETED。我在當前的PHP項目中使用相同的方式,但是您也可以使用C#方式使用mongoDB,NoSQL:https://github.com/gaillard/mongo-queue-csharp。直接發佈到WCF將不會是一個好主意,以防萬一在它們之間發生錯誤時,您將永遠失去信息。

+0

感謝您的全面解釋。根據你的回覆,我搜索這個[鏈接](http://www.c-sharpcorner.com/UploadFile/6897bc/understanding-and-using-msmq/),發現非常有幫助。 – touseefkhan4pk 2013-04-29 09:28:14