2017-11-04 112 views
0

我有一个WCF CRUD REST API启动并运行在Windows服务中。一切都很好。如何运行我的WCF服务库“正在处理”

我想为用户提供运行该进程的能力;所以,而不是运行服务(这将需要管理员)我也想有一个静态库版本。使用.NET(C#)我该如何去解决这个问题?现在,我有:

ServiceLib (interesting code) 
ConsoleHost 
GUI 

我想GUI来选择能够运行ServiceLib代码作为一个完整的Windows服务 - 或 - 就像在处理代码。服务方式已经有效,我认为这很难。

+0

我应该更清楚 - 我知道如何自我托管,并且我知道如何在控制台中托管,并且我知道如何托管服务。我不知道如何根据用户偏好从一种方法更改为另一种方法。 如果用户想要在服务中运行它,我想在服务中运行它。如果用户想要将其作为普通应用运行,我想这样做。我不知道如何在运行时更改此绑定。 – Dave

+0

我现在看到了。谢谢澄清! –

回答

0

如果你现在在Windows服务中运行它,它已经是自我托管了,我想?如果GUI应用程序将是唯一在“进程中”模式下使用服务的应用程序,则可以将“WCF CRUD REST API”ServiceLib分成两部分,一部分实现CRUD部分,另一部分在其上实现WCF REST API。在GUI中,您只需要CRUD部分,因此不需要在将要调用它的相同(且唯一)应用程序中自行托管REST API。

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

相关问题