我有两个 WCF 服务托管在 Windows Server 2003 机器上的单个 Windows 服务中。如果 Windows 服务需要访问任一 WCF 服务(例如发生定时事件时),它会使用公开的五个命名管道端点之一(不同的服务协定)。该服务还为这两个服务中的每一个公开 HTTP MetadataExchange 端点,并为服务器外部的使用者公开 net.tcp 端点。
通常情况下一切正常,但每隔一段时间我都会收到一条错误消息,如下所示:
System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://localhost/IPDailyProcessing that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. ---> System.IO.PipeException: The pipe endpoint 'net.pipe://localhost/IPDailyProcessing' could not be found on your local machine. --- End of inner exception stack trace --- Server stack trace: at System.ServiceModel.Channels.PipeConnectionInitiator.GetPipeName(Uri uri) at System.ServiceModel.Channels.NamedPipeConnectionPoolRegistry.NamedPipeConnectionPool.GetPoolKey(EndpointAddress address, Uri via) 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.EnsureOpened(TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
它不会可靠地发生,这令人抓狂,因为我无法在我想要的时候重复它。在我的 Windows 服务中,我也有一些定时事件和一些文件监听器,但这些事件很少发生。有没有人知道为什么我可能会遇到问题?任何帮助将不胜感激。
最佳答案
检查“Net.Pipe Listener Adapter”服务是否在服务管理控制台中运行。 WAS 使用它来接收命名管道上的任何请求。
关于.net - 没有端点监听 net.pipe ://localhost/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247185/