【问题标题】:How to embed an asp.net site in a windows service (or vice versa)如何在 Windows 服务中嵌入 asp.net 站点(反之亦然)
【发布时间】:2012-04-12 07:38:10
【问题描述】:

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

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 啊,我当然没想到!听起来是最简单的解决方案。谢谢
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      您似乎真的需要这两样东西——托管在 IIS 中的 Web 应用程序和托管为 Windows 服务的 Windows 服务。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2014-06-11
        • 2019-07-31
        • 2019-03-17
        • 1970-01-01
        • 2016-09-03
        • 2015-01-02
        相关资源
        最近更新 更多