C# Web应用程序接口模块设计
我将从概述开始。我需要完成一个可能需要很长时间才能完成的过程。我想创建一个web界面,该界面获取输入参数,并将这些参数发送到完成该过程的单独模块。该模块需要能够调用其他web服务。我希望web界面完全独立于模块。这样,用户可以在不中断模块/流程的情况下离开页面、关闭选项卡/浏览器等。使用轮询系统,我可以在网上向用户显示完成百分比 我的问题是,制作这个模块、一个web服务、一个控制台应用程序或其他东西的最佳途径是什么C# Web应用程序接口模块设计,c#,.net,web-services,module,console-application,C#,.net,Web Services,Module,Console Application,我将从概述开始。我需要完成一个可能需要很长时间才能完成的过程。我想创建一个web界面,该界面获取输入参数,并将这些参数发送到完成该过程的单独模块。该模块需要能够调用其他web服务。我希望web界面完全独立于模块。这样,用户可以在不中断模块/流程的情况下离开页面、关闭选项卡/浏览器等。使用轮询系统,我可以在网上向用户显示完成百分比 我的问题是,制作这个模块、一个web服务、一个控制台应用程序或其他东西的最佳途径是什么 web应用程序和模块都将位于.NET中。看起来您需要一个后台工作进程,它可以轻松
web应用程序和模块都将位于.NET中。看起来您需要一个后台工作进程,它可以轻松地作为Windows服务实现。控制台应用程序在技术上可以工作,但您可以更好地控制服务执行、安全性、重新启动等
因此,您的web应用程序将请求放入某种队列(例如MSMQ,即
System.Messaging.Message
class,或其他更好的实现,或者您可以仅使用数据库来伪造请求),服务将以自己的速度处理队列中的项目。在不了解您的需求的情况下,我看不出使用web服务的理由,因为您可能不会将其公开给外部世界。不确定这是否有任何用处,但请看一下Signar只能在通知方面提供帮助,但是,如果需要花费大量的时间,处理仍然必须被转移到另一个进程。那么,这个进程可能会很快运行一次。我想我可以让它每晚运行并检查队列。这不会浪费太多,我甚至没有考虑到我的答案,因为我对这个问题知之甚少。该服务本身不会消耗太多资源,因此您可以让它保持运行,它可以定期处理队列。