我写了一个wcf服务来公开restful接口。
现在我使用 IIS 作为 wcf 服务主机。
除了公开 restful 之外,我还需要在应用程序上执行一些操作 - 为此,我必须将我的应用程序作为 Windows 服务运行。但是使用 IIS 作为主机不会使我的 wcf 服务器作为服务运行。
如何使使用带有暴露 wcf restful 接口服务的 windows 服务成为可能?
您可以自托管WCF
服务,请参考服务主机。
为了能够在 2 种不同的主机模型中运行应用程序,您必须将托管内容与主代码分开。关键点:您可以使用在其他库项目中创建的控制器。
我以前做过这个:
- 创建一个库项目,并将所有控制器和其他类移动到那里。
- 创建空的 WFC 服务,添加对上述库的引用并使其正常工作。
- 创建一个空的控制台应用程序,引用库,添加自托管内容并使其正常工作。
- 将顶级软件包添加到控制台应用,以便能够将其安装为 Windows 服务。
所以你会得到:
- 生成和部署 WCF 项目,可以在 IIS 中承载它; 构建控制台应用
- ,可以将其作为控制台应用运行;
- 使用 Topshelf 安装参数,可以将控制台应用安装为 Windows 服务。