如何从Windows服务中公开restful接口?

时间:2017-02-02 05:29:05

标签: c# web-services rest wcf iis

我写了一个wcf服务,暴露了宁静的界面 现在我使用iis作为wcf服务主机。

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

如何使用暴露wcf restful接口服务的Windows服务?

2 个答案:

答案 0 :(得分:2)

您可以自行托管WCF服务,请参阅ServiceHost

答案 1 :(得分:1)

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

之前我这样做过:

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

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