0

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

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

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

谢谢

4

3 回答 3

3

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

于 2012-04-12T07:45:50.650 回答
0

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

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

于 2012-04-12T07:47:05.747 回答
0

看起来您确实需要这两样东西——托管在 IIS 中的 Web 应用程序和托管为 Windows 服务的 Windows 服务。

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

于 2012-04-12T07:48:12.640 回答