2013-03-04 32 views
1

我将从概述开始。我需要完成一个可能需要很长时间才能完成的流程。我想创建一个Web界面来获取输入参数并将这些参数发送到完成该过程的单独模块。该模块需要能够调用其他Web服务。我希望Web界面完全独立于模块。这样,用户可以离开页面,关闭标签页/浏览器等,而不会中断模块/进程。使用投票系统,我可以向网络用户显示完成的百分比。模块设计的Web应用程序界面

我的问题是,什么是制作这个模块,网络服务,控制台应用程序,还有其他的最佳路线?

Web应用程序和模块都将在.NET中。

+0

不确定这是否有用,只要看一下http://signalr.net/ – 2013-03-04 15:01:19

+1

SignalR只能帮助处理故事的通知部分,但如果处理过程中需要大量数据,它仍然必须卸载到另一个进程时间 – 2013-03-04 15:03:40

回答

0

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

因此,您的Web应用程序会将请求放入某种类型的队列中(例如MSMQ,即System.Messaging.Message类或更好的实现,或者你可以用数据库伪造它),并且服务按照自己的步调处理队列中的项目。在不了解您的要求的情况下,我认为没有理由使用Web服务,因为您可能不会将其暴露给外部世界。

+0

那么,这个过程可能会在蓝色月亮中运行一次。我想我可以让它每晚运行并检查队列。这不会浪费太多。 – ScubaSteve 2013-03-04 15:09:55

+0

我甚至没有考虑过我的答案中的表现,因为我对这个问题知之甚少。该服务本身并不占用太多资源,因此您可以保持运行状态并定期处理队列。 – 2013-03-04 15:12:09