【问题标题】:How to expose restful interface from windows service ?如何从 Windows 服务中公开 restful 接口?
【发布时间】:2017-02-02 05:29:05
【问题描述】:

我写了一个暴露restful接口的wcf服务。
现在我使用 iis 作为 wcf 服务主机。

除了暴露 restful 之外,我还需要对我的应用程序执行一些操作 - 为此,我必须将我的应用程序作为 Windows 服务运行。 但是使用 iis 作为主机不会使我的 wcf 服务器作为服务运行。

如何通过暴露 wcf RESTful 接口服务来使用 Windows 服务?

【问题讨论】:

    标签: c# web-services rest wcf iis


    【解决方案1】:

    您可以自托管WCF服务,请参考ServiceHost。

    【讨论】:

    • 但在这种情况下,我将无法使用 iis,我现在可以使用 post 80 作为我的服务的默认条目
    • 看看Routing 这可能有助于解决您的相同端口 80 问题。
    【解决方案2】:

    为了能够在 2 个不同的主机模型中运行应用程序,您必须将托管内容与主代码分开。它的关键点:您可以使用在其他库项目中创建的控制器。

    我以前这样做过:

    1. 创建一个库项目并将所有控制器和其他类移到那里。
    2. 创建空的 WFC 服务,添加对上述库的引用并使其工作。
    3. 创建一个空的控制台应用程序,引用库,添加自托管内容并使其工作。
    4. 将 topshelf 包添加到控制台应用,以便能够将其安装为 Windows 服务。

    所以你会得到:

    1. 构建和部署 WCF 项目,您可以将其托管在 IIS 中;
    2. 构建一个控制台应用程序,您可以将其作为控制台应用程序运行;
    3. 使用 topshelf 安装参数,您可以将控制台应用程序安装为 Windows 服务。

    【讨论】:

    • 我面前有一个可行的解决方案。我将尝试在新的解决方案中复制这个想法并与​​ git 分享。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多