# Self-hosting WCF in Windows Forms without another Windows process [closed]

I have a Windows application and want to self-host a WCF in it. This MSDN article walks you through how to self-host WCF in a console. Jason Henderson's article demonstrates how to call the service. But the problem is, I don't want to host my service in another Windows process. I want to host it in my client application.

Here is my workaround:

1. CtrlF5 to run the service
2. Add service reference to my client application

Then I can start my service in my client like this:

static void Main()
{
ServiceHost host = new ServiceHost(typeof(MyService));
host.Open();
Application.Run(new Form1());
host.Close();
}


It works, but I wonder if there are any simpler ways to do this.

• That looks pretty simple to me... what exactly do you expect us to review? – Jeff Mercado May 31 '12 at 5:59
• i'm looking for a better solution, not my ugly workaround :) – walterhuang May 31 '12 at 14:01

## 1 Answer

You can also start host in another thread:

Task.Factory.StartNew(() =>
{
ServiceHost host = new ServiceHost(typeof(MyService));
host.Open();
};


(or using classic Thread and ThreadStart).

• You should consider marking this Task with the TaskCreationOptions.LongRunning option – MrWombat Jul 27 '15 at 6:02