C# Asp.Net-将处理卸载到外部应用程序
我有一个asp.net网站,它使用第三方exe处理请求。目前我的工作流程是C# Asp.Net-将处理卸载到外部应用程序,c#,asp.net,polling,C#,Asp.net,Polling,我有一个asp.net网站,它使用第三方exe处理请求。目前我的工作流程是 用户使用任何浏览器访问网站,并填写包含工作详细信息的表单 该网站调用WCF自托管windows服务,该服务正在侦听端口 Windows服务启动第三方exe来处理作业,并将结果返回到网站 网站向用户显示返回的结果 上述网站是一个原型,现在需要转变为生产准备部署。我意识到上面的体系结构有许多可能被破坏的地方。例如,如果计算机已关机,或者windows服务崩溃,并且不再侦听端口,则所有当前请求都将停止处理。为了使体系结构更加健
第二种体系结构为我提供了更多的日志功能,如果作业在队列中,它们可以再次启动。但是,它涉及大量轮询,可能无法扩展。有谁能推荐更好的体系结构吗?我在我的一个应用程序中实现了相同的体系结构,其中用户要处理多个请求。所以我有-
我会选择MSMQ或MSMQ,而不是轮询
这样,您可以将处理过程卸载到队列的多个使用者(可能是web服务器上的独立服务器),并并行处理更多请求。我们已经为类似的需求进行了POC,我们在步骤2考虑了MSMQ,但没有在项目中实施。期待关于这个有趣的实现的答案。@Sundeep-您最终在项目中使用了MSMQ的什么替代方案?项目是否已完成或仍在进行中?ThanksIt是很久以前的事了,应用程序做一些后端处理并向用户发送通知电子邮件。因此,您希望将其替换为即时处理。如果您真的希望它具有健壮性,那么您应该直接使用MSMQ,或者使用依赖MSMQ的WCF绑定之一。不要重新发明轮子,特别是如果它很重要的话;我已经使用了MQSeries(但MSMQ是相同的原理)和“保存到db”…这两个选项都是有效的-但是:由于您已经拥有并了解WCF,请查看允许您使用WCF写入MSMQ(并从中读取)的“netmsmqbinding”。如果我有幸每30分钟收到一次请求,我会选择这种方法。但是,对于我当前的应用程序,响应需要实时,并且可能会产生大量请求(每小时200多个请求)。这似乎是目前最好的选择。其他人也建议MSMQ,但我只能接受一个答案。我会接受这个答案,因为它有很好的理由选择这种方法而不是投票。