Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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#_Asp.net_Asp.net Mvc_Web Applications_Web - Fatal编程技术网

C# 是否在Web服务器启动时启动长时间运行的进程?

C# 是否在Web服务器启动时启动长时间运行的进程?,c#,asp.net,asp.net-mvc,web-applications,web,C#,Asp.net,Asp.net Mvc,Web Applications,Web,我已经离开web开发6/7年了,我完全不知道该怎么做。我正在学习一些关于HTML5之类的教程,但我希望能在这里得到帮助 我正在尝试建立一个(POC)网站,该网站将有“服务器”监控它运行的应用程序,并在某个应用程序运行时更改托管页面的内容。我不希望模型是PageLoad->Application Check,我更希望像ServerStart->ApplicationHook->Callback->model->PageLoad->CheckModel这样的东西,所以当服务器启动时,钩子的回调会更新

我已经离开web开发6/7年了,我完全不知道该怎么做。我正在学习一些关于HTML5之类的教程,但我希望能在这里得到帮助

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

因此,如果您构建的页面依赖于服务器上的事件,并且需要能够与服务器上的应用程序单独交互到单个页面,但是该页面需要能够将信息“发布”回该应用程序,您会怎么做


我的解释有点通俗易懂,所以我希望在某个时候我的问题能被清楚地理解

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


编辑:这里有一个关于托管web服务的不同选项的示例-在我看来,使用Windows服务确实是您的最佳选择。您可能可以使用WCF服务,但您必须与服务器上的本地应用程序对话,仅使用Windows服务可能更容易完成这一部分。

如何使托管在Windows服务中的WCF服务监视我的应用程序?我找不到WCF的onstart。。。或者我应该让Windows服务完成这项工作?如果是这样,我如何使WCF服务和Windows服务相互通信?@Vijay我对WCF不太熟悉,所以我无法回答你问题的这一部分。我只需要创建一个独立的Windows服务,然后让它监听端口。必要时,WCF服务可以打开该端口并向Windows服务发送消息。关键是web应用程序在应用程序池中运行,如果应用程序池被回收,web应用程序也会被回收。另外,在第一次请求之前,应用程序池可能不会启动。如果您需要在启动时运行的服务,Windows服务是您最好的选择。@Vijay我用一篇文章的链接编辑了答案,看看这是否有帮助。