2012-04-12 127 views
0

我正在构建一个Windows服务,但我想要获得一些网页来控制某些设置,获取诊断信息等等......如何在windows服务中嵌入asp.net网站(反之亦然)

你会如何将一个asp.net网站和一个windows服务结合在一起? 我知道WCF可以自行托管到一个任意进程,但我可以用asp.net做同样的事吗?

另一个选择是让我的服务逻辑在asp.net网站的application_start方法中产生长时间运行的线程。但是,我没有获得启动时自动启动等功能的窗口服务。另一个问题可能是IIS可能决定回收这个过程。而且,我的服务需要打开一个原始的tcp套接字来接受连接。我可以在IIS中做到这一点吗?

感谢

回答

3

我认为这样做最简单,最可靠的方法是在同一台服务器作为Windows服务在IIS下运行的ASP.NET Web站点。 Windows服务可以托管一个可供ASP.NET应用程序访问的WCF Web服务。

+0

只是打败了我:-) – devstuff 2012-04-12 07:47:47

+0

啊,我当时没有想到这一点!听起来像最简单的解决方案。 Thansk – Clement 2012-04-15 23:00:11

0

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

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

0

看起来你真的需要两种东西 - 一种是在IIS中托管的Web应用程序,另一种是托管为Windows服务的Windows服务。

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

相关问题