从Asp.net发送消息给Window Service?

时间:2013-04-29 06:37:13

标签: c# asp.net

我有一个运行窗口服务的场景。每当我的asp.net网站发生特定异常时,我都会调用窗口服务或从asp.net web向我的窗口服务发送消息,窗口服务会在收到该消息时生成一封电子邮件。什么是这种情况下最好的最佳解决方案。我应该使用某种wcf服务或共享数据库。请指导我这方面。

1 个答案:

答案 0 :(得分:0)

您的要求与使用MSMQ进行消息传递的方式非常相似。你需要一个共享的地方,你可以从你的asp.net发布异常,它将被服务选中。有不同的选择。其中一个是使用MSMQ,您可以将数据发布到队列中,您的服务可以读取它。如果您有兴趣安装MSMQ及其编码方面。数据库将是最好的解决方案。有一个表,您可以在其中记录包含所有信息的异常消息。现在,您的服务将选择记录并对其进行处理并将其标记为完成。你可以有两种方法,在处理删除记录之后,这将使你的数据库非常轻巧和快速地使用。其他方法是保留一个标志,状态如POSTED,PROCESSING和COMPLETED。我在我当前的PHP项目中使用相同的方法,但是你也可以使用C#方式使用mongoDB,NoSQL:https://github.com/gaillard/mongo-queue-csharp。直接发布到WCF不是一个好主意,如果之间发生一些错误,你将永远丢失消息。