我在Windows服务中启动并运行WCF CRUD REST API。一切都很好。
我想为用户提供在进程中运行的能力;所以,我不想运行服务(需要管理员),而是希望有一个静态库版本。
使用.NET(C#),我该怎么做?现在我有:
ServiceLib (interesting code)
ConsoleHost
GUI
我希望GUI能够选择性地将ServiceLib代码作为完整的Windows服务运行 - 或者 - 就像进程内代码一样。服务方式已经有效,我认为更难。
答案 0 :(得分:0)
如果你现在在Windows服务中运行它已经自托管了,我想?如果GUI应用程序将是唯一使用"进程中的服务"模式,您可以拆分" WCF CRUD REST API" ServiceLib分为两个 - 一个实现CRUD部分,另一个实现WCF REST API。在GUI中,您只需要CRUD部分,因此无需在同一个(也是唯一的)应用程序中自行托管REST API。
从系统管理员的角度来看,将GUI应用程序作为Windows服务运行通常是一个非常糟糕的主意。我经常运行可以是WCF托管Windows服务或只是WCF主机的控制台应用程序,但它们唯一的GUI是对Ctrl-C做出反应的能力。