2013-04-29 180 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