如何在Windows服务中嵌入asp.net站点(反之亦然)

时间:2012-04-12 07:38:11

标签: asp.net windows service tcp self-hosting

我正在构建一个Windows服务,但我想获得一些网页来控制一些设置,获取诊断等...

您如何将asp.net网站和Windows服务结合在一起? 我知道WCF可以自我托管到任意进程中但是我可以用asp.net做同样的事情吗?

另一个选择是在asp.net网站application_start方法中使用我的服务逻辑来生成长时间运行的线程。但是,我没有内置窗口服务功能,例如启动时自动启动。另一个问题可能是IIS可能决定回收该过程。而且,我的服务需要打开一个原始的tcp套接字来接受连接。我可以在IIS中执行此操作吗?

由于

3 个答案:

答案 0 :(得分:3)

我认为最简单,最强大的方法是让IIS网站在与Windows服务相同的服务器上的IIS下运行。 Windows服务可以托管ASP.NET应用程序可以访问的WCF Web服务。

答案 1 :(得分:0)

我希望您的Windows服务自托管WCF“配置”服务。如果UI位于同一台计算机上,则只需在本地公开WCF服务。如果Windows服务需要打开一个单独的原始套接字进行通信,这可能会在防火墙上打一个洞。

然后,ASP.NET可以像往常一样由IIS托管,并调用WCF方法来执行配置任务。

答案 2 :(得分:0)

看起来你真的需要两件事 - 一个在IIS中托管的网络应用程序和一个托管为Windows服务的Windows服务。

然后你可以以某种方式在两者之间共享数据,例如通过数据库。

相关问题