C# 如何从GUI控制Windows服务的设置?

C# 如何从GUI控制Windows服务的设置?,c#,winforms,windows-services,ipc,C#,Winforms,Windows Services,Ipc,我有一个与TCP/IP通信的Windows服务。 我想知道的是Windows窗体应用程序能够修改此服务设置的方法,例如远程主机地址和要连接的端口、超时长度和日志设置。 我已经研究了NamedPipe、WCF服务和IPC,但我无法确定哪一个最适合我的场景。 如果能够从客户端执行类似操作来更改服务设置,那就太好了。 [Service].SetTimeout(3000); 有什么建议吗?如果你想要那种编程控制,那么WCF是你最好的选择。使用WCF,您可以自己定义API,例如,调用什么方法、传递什

我有一个与TCP/IP通信的Windows服务。
我想知道的是Windows窗体应用程序能够修改此服务设置的方法,例如远程主机地址和要连接的端口、超时长度和日志设置。

我已经研究了NamedPipe、WCF服务和IPC,但我无法确定哪一个最适合我的场景。
如果能够从客户端执行类似操作来更改服务设置,那就太好了。

[Service].SetTimeout(3000);


有什么建议吗?

如果你想要那种编程控制,那么WCF是你最好的选择。使用WCF,您可以自己定义API,例如,调用什么方法、传递什么消息等。WCF框架负责为您交换数据。对于WCF配置文件,更改后端数据交换机制非常简单。例如,只需修改配置文件,即可将用于同一机器通信的替换为用于跨机器通信的。不过,如果你以前没有做过WCF,我的经验是进入壁垒相当高。当然,我对VisualStudio2008感到失望。在较新的版本中可能会容易得多。这是我给了一些帮助我的教程

就我个人而言,在我所从事的项目中,我已经用基于TCP的本地主机版本取代了早期的WCF实现。当事情“运行”时,前端应用程序从Windows服务接收恒定的信息,并且在我们做出决定时,WCF流还没有很好地记录。我们也看到了问题的迹象,尽管这可能仅仅是因为我们做错了。无论如何,我对我们提出的解决方案非常满意

我不能直接与命名管道对话,但据我所知,它们很容易使用


HTH.

我会修改服务的配置(无论它存储在哪里-文件、注册表等),然后使用来告诉它重新加载设置。