如何运行 WCF 服务库"in process"



我有一个WCF crud rest api在Windows服务中启动并运行。 一切都很好。

我也想为用户提供运行该进程的能力;因此,与其运行服务(需要管理员),我还希望有一个静态库版本。

使用.NET (C#),我将如何做到这一点? 现在我有:

ServiceLib (interesting code)
ConsoleHost
GUI

我希望 GUI 能够有选择地将 ServiceLib 代码作为成熟的 Windows 服务 - OR- 作为进程内代码运行。 服务方式已经有效,我认为这更难。

如果您现在在 Windows 服务中运行它,它已经是自托管的,我假设?如果GUI应用程序是唯一在"进程中"模式下使用该服务的应用程序,则可以将"WCF CRUD REST API"ServiceLib拆分为两个 - 一个实现CRUD部分,另一个在其上实现WCF REST API。在GUI中,你只需要CRUD部分,所以不需要在调用它的同一个(也是唯一一个)应用程序中自托管REST API。

从系统管理员的角度来看,将 GUI 应用程序作为 Windows 服务运行通常是一个非常糟糕的主意。我经常运行控制台应用程序,这些应用程序可以是 WCF 托管 Windows 服务,也可以只是 WCF 主机,但它们唯一的 GUI 是对 Ctrl-C 做出反应的能力。

相关内容

最新更新