You can only run a Windows Service by the Service Controller. The Service Controller has API which you can use to Start/Stop/Restart service.
Use the class
System.ServiceProcess.ServiceController
, see
http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx[
^].
Now, I have no idea what that supposed to mean, "to call Windows Service from WCF"? WCF is not a Service, Application or a process, this is Windows Communication Foundation, essentially, a library and technology. If you can make some .NET code using Service Controller API and/or WCF, you can control a Service from this code. It's up to you what is that.
This is all you need to solve your problem of controlling a Windows Service.
By the way, why not self-hosting WCF in your Service? In my opinion, a Windows Service is a perfect host for WCF server part. This is up to you though. I mentioned it just to bring your attention to this: are you sure you really understand what is WCF hosting? If you do — my apologies, good for you. However, it would be nice if you explain why not using self-hosting by your Service. If you have a better idea, I would do curious to know what is it.
—SA