Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web应用程序接口模块设计_C#_.net_Web Services_Module_Console Application - Fatal编程技术网

C# Web应用程序接口模块设计

C# Web应用程序接口模块设计,c#,.net,web-services,module,console-application,C#,.net,Web Services,Module,Console Application,我将从概述开始。我需要完成一个可能需要很长时间才能完成的过程。我想创建一个web界面,该界面获取输入参数,并将这些参数发送到完成该过程的单独模块。该模块需要能够调用其他web服务。我希望web界面完全独立于模块。这样,用户可以在不中断模块/流程的情况下离开页面、关闭选项卡/浏览器等。使用轮询系统,我可以在网上向用户显示完成百分比 我的问题是,制作这个模块、一个web服务、一个控制台应用程序或其他东西的最佳途径是什么 web应用程序和模块都将位于.NET中。看起来您需要一个后台工作进程,它可以轻松

我将从概述开始。我需要完成一个可能需要很长时间才能完成的过程。我想创建一个web界面,该界面获取输入参数,并将这些参数发送到完成该过程的单独模块。该模块需要能够调用其他web服务。我希望web界面完全独立于模块。这样,用户可以在不中断模块/流程的情况下离开页面、关闭选项卡/浏览器等。使用轮询系统,我可以在网上向用户显示完成百分比

我的问题是,制作这个模块、一个web服务、一个控制台应用程序或其他东西的最佳途径是什么


web应用程序和模块都将位于.NET中。

看起来您需要一个后台工作进程,它可以轻松地作为Windows服务实现。控制台应用程序在技术上可以工作,但您可以更好地控制服务执行、安全性、重新启动等


因此,您的web应用程序将请求放入某种队列(例如MSMQ,即
System.Messaging.Message
class,或其他更好的实现,或者您可以仅使用数据库来伪造请求),服务将以自己的速度处理队列中的项目。在不了解您的需求的情况下,我看不出使用web服务的理由,因为您可能不会将其公开给外部世界。

不确定这是否有任何用处,但请看一下Signar只能在通知方面提供帮助,但是,如果需要花费大量的时间,处理仍然必须被转移到另一个进程。那么,这个进程可能会很快运行一次。我想我可以让它每晚运行并检查队列。这不会浪费太多,我甚至没有考虑到我的答案,因为我对这个问题知之甚少。该服务本身不会消耗太多资源,因此您可以让它保持运行,它可以定期处理队列。