Windows服务中承载的WCF服务

Windows服务中承载的WCF服务,wcf,windows-services,Wcf,Windows Services,我有一个托管在Windows服务中的WCF服务。当用户修改WCF服务配置时,他需要重新启动服务 我想知道使用windows重新启动windows服务是否更好 serviceController.stop() servicecontroller.start() 或者,每次他想重新启动WCF客户机时,都创建一个新的WCF客户机实例。如果在继承自System.ServiceProcess.ServiceBase的服务容器中创建WCF客户端的新实例,则不会丢失任何信息。 您应该在方法内部启动服务 p

我有一个托管在Windows服务中的WCF服务。当用户修改WCF服务配置时,他需要重新启动服务

我想知道使用windows重新启动windows服务是否更好

serviceController.stop() 
servicecontroller.start()

或者,每次他想重新启动WCF客户机时,都创建一个新的WCF客户机实例。如果在继承自
System.ServiceProcess.ServiceBase的服务容器中创建WCF客户端的新实例,则不会丢失任何信息。

您应该在方法内部启动服务

protected override void OnStart(string[] args)
{
  servicecontroller.start()
}
protected override void OnStop()
{
    //here clean up code or any tear-down necessary to stop your service.
  serviceController.stop() 
 }
并在方法内停止您的服务

protected override void OnStart(string[] args)
{
  servicecontroller.start()
}
protected override void OnStop()
{
    //here clean up code or any tear-down necessary to stop your service.
  serviceController.stop() 
 }
因此,当您从服务托盘启动/停止windows服务时,会自动调用这些方法


正如其他人所说,
每次在您的服务上创建一个新的WCF客户端实例都不会产生任何影响

创建一个新客户端并不会真正重新启动服务-所以我认为这对您来说真的不是一个选项…是的,但是配置参数会被重置,对吗?这就是我想要的。创建一个新客户机是一个好主意吗?请解释你的问题中在“或通过创建…”之后的部分。nowaq:我的意思是我将在客户机右侧添加一个WCF服务的服务引用。使用它,我将每次创建一个新客户机。