I am facing issue related to net.pipe end point of my WCF Service. I have configured required server roles (Application & Web Roles) and features (Windows Activation) in a Windows 2008 R2 machine. I created a sample wcf service with net.tcp, net.pipe and http endpoints and hosted it in IIS. I have enabled required binding in site level as well as Web Application level also. net.tcp & http endpoints are working fine. But getting error for net.pipe endpoint as mentioned below
System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://localhost/MyWCFService/Service1.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
Server stack trace:
at System.ServiceModel.Channels.ConnectionUpgradeHelper.DecodeFramingFault(ClientFramingDecoder decoder, IConnection connection, Uri via, String contentType, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at NetPipeValidation.ServiceReference1.IService1.GetData(Int32 value)
at NetPipeValidation.ServiceReference1.Service1Client.GetData(Int32 value)
at NetPipeValidation.Form1.button1_Click(Object sender, EventArgs e)
My initial suspect was net.pipe protocol is not properly activated. So validated all required windows services are running correctly (WAS, Net.Pipe Adaptar, Net.Tcp Adaptar). I also checked on SMSvcHost.exe.config file and made sure it has right configuration.
Since all services are running, I enabled performance counter and checked whether my net.pipe registration is sucessful. Regitrations Active for net.pipe and Uris Registered for Net.pipe has count as 1. With these counter values, I assuming my endpoint is properly configured and valid from server side perspective.
For some reason, end point is not reachable from client side. Is there any other validation I need to do in the machine?