在webserver启动时启动长时间运行的进程?

时间:2012-10-07 16:20:01

标签: c# asp.net asp.net-mvc web-applications web

我已经离开了网络开发6/7年了,而且我在如何做事方面完全迷失了。我正在阅读有关HTML5和其他的一些教程,但我希望能在这里得到帮助。

我正在尝试构建一个(POC)网站,该网站将“服务器”监视它运行的应用程序,并且当某个应用程序运行时更改托管页面的内容。我不希望模型是PageLoad->应用程序检查,我宁愿像ServerStart-> ApplicationHook-> Callback->型号 - > PageLoad-> CheckModel,所以钩子把当服务器启动并且钩子的回调更新页面用于更新的模型时就位。虽然这种架构可能不是最好的方式,但总的来说,我只是在寻找一种方法来实现一个长时间运行的进程,该进程在服务器启动时启动。最终我将其转移到一个Windows服务,该服务在进行更改时调用Web服务,但对于POC,我宁愿远离多个应用程序进行交互,因为Windows服务也需要由服务器“调用”,我想不出现在很容易实现的。

因此,如果您构建的页面依赖于服务器上的事件,并且需要能够与服务器上的应用程序分别与单个页面进行交互,但页面需要能够“发布”信息那个应用程序你会做什么?

我的解释已经到处都是,所以我希望在某些时候我的问题已经清楚了! :)

1 个答案:

答案 0 :(得分:1)

也许有其他选择,但我认为这种设置的唯一选择是Windows服务。如果您需要与其他组件通信,请让它使用套接字或在已知端口上侦听HTTP请求。从Web应用程序执行您所描述的操作并非不可能,但它肯定非常难,因为它是控制流程中发生的事情的Web服务器(应用程序池可执行文件),而不是您的代码。在Windows服务中,您可以控制。

编辑:这里是关于托管网络服务的不同选项的article - 在我看来,使用Windows服务确实是您的最佳选择。您可以使用WCF服务,但是您必须与服务器上的本地应用程序通信,并且使用Windows服务可能更容易实现该部分。