net.pipe端点无法从客户端应用程序连接



我正面临与WCF服务的net.pipe端点相关的问题。我已在Windows 2008 R2计算机中配置了所需的服务器角色(应用程序和Web角色)和功能(Windows激活)。我创建了一个带有net.tcp、net.pipe和http端点的示例wcf服务,并将其托管在IIS中。我已经在站点级别以及Web应用程序级别启用了所需的绑定。net.tcp&http端点运行良好。但是如下所述,net.pipe端点出现错误

System.ServiceModel.EndpointNotFoundException:没有在网络上侦听的终结点。pipe://localhost/MyWCFService/Service1.svc可以接受这个消息的。这通常是由不正确的地址或SOAP操作引起的。有关更多详细信息,请参见InnerException(如果存在)。

服务器堆栈跟踪:

位于System.ServiceModel.Channels.ConnectionUpgradeHelper.DecodeFramingFault(ClientFramingDecoder解码器,IConnection连接,Uri via,String contentType,TimeoutHelper&TimeoutHelper)

在System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection连接,ArraySegment`1前导,TimeoutHelper和TimeoutHelper)

位于System.ServiceModel.Channels.ClientFramingDuplexCessionChannel。DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection连接,TimeoutHelper和TimeoutHelper)

位于System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan超时)

在System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan超时)

在System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan超时)

在System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan超时)

在System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan超时)

在System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channes.ServiceChandle.ICallOnce.Call(ServiceChannel通道,TimeSpan超时)

在System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan超时,CallOnceManager级联)

在System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,ProxyOperationRuntime操作,对象[]输入,对象[]输出,TimeSpan超时)

在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime操作)

在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage消息)

[0]处重新引发异常:

在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage-reqMsg,IMessage-retMsg)

在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)

在NetPipeValidation.ServiceReference1.IService1.GetData(Int32值)

在NetPipeValidation.ServiceReference1.Service1Client.GetData(Int32值)

在NetPipeValidation.Form1.button_Click(对象发送器,EventArgs e)

我最初怀疑是net.pipe协议没有正确激活。因此,验证了所有必需的windows服务是否正确运行(WAS、Net.Pipe-Adaptar、Net.Tcp-Adaptar)。我还检查了SMSvcHost.exe.config文件,并确保它有正确的配置。

由于所有服务都在运行,我启用了性能计数器,并检查我的net.pipe注册是否成功。注册net.pipe的活动和注册net.ppipe的Uris计数为1。有了这些计数器值,我假设我的端点配置正确,并且从服务器端的角度来看是有效的。

由于某些原因,无法从客户端访问端点。我需要在机器中进行其他验证吗?

net.pipe用于x进程调用,而不是x机器调用。如果你正在跨越机器边界,你可以使用http和/或net.tcp。如果你的客户端和服务在同一台机器上,那么你应该使用net.pipe.

相关内容

最新更新