1

I'm fairly recent to WCF and trying to figure out the best way to accomplish my requirements. I have an application hosting a WCF service with the following code:

Uri u1 = new
Uri("http://localhost:8732/Client1/WcfServiceLibrary1/Service1/"); Uri
u2 = new
Uri("http://localhost:8732/Client1/WcfServiceLibrary1/Service1/mex");
WSHttpBinding binding = new WSHttpBinding(); 

sHost = new ServiceHost(typeof(WcfServiceLibrary1.Service1), u1);
ServiceMetadataBehavior meta = new ServiceMetadataBehavior();
meta.HttpGetEnabled = true;
sHost.AddServiceEndpoint(typeof(WcfServiceLibrary1.IService1), binding, u1); 
sHost.Description.Behaviors.Add(meta); sHost.Open();

I can create a service reference on a client application and call methods on this service no problems. using the code below.

remoteService.Service1Client client = new remoteService.Service1Client(); 
remote.Text = client.GetData(3);

I can also call a method without a service reference.

EndpointAddress myEndpoint = new EndpointAddress("http://localhost:8732/Client1/WcfServiceLibrary1/Service1/");
WSHttpBinding myBinding = new WSHttpBinding();

ChannelFactory<IService1> ServiceConnectionFactory = new ChannelFactory<IService1>(myBinding, myEndpoint);
IService1 serviceConnection = ServiceConnectionFactory.CreateChannel();

If I try to execute the same code in the host application it get the error below.

The request channel timed out while waiting for a reply after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.

How can a application consume and use a WCF service that it is currently hosting? Do I need to open the service in a thread of its own?

The idea is for the host to trigger some initialization before clients connect.

  • You should be able to consume a service from the program hosting it. Are you sure that when you try to consume it the host is still connected (i.e, `ServiceHost.Close()` hasn't been called?) Can you post the code where you've tried this and gotten the reported error? – Tim Mar 07 '13 at 06:28
  • I've found the solutin here http://miscjibberish.blogspot.com.au/2008/11/wcf-service-blocking-when-self-hosting.html – user2142806 Mar 07 '13 at 06:34

0 Answers0