我在 Windows Server 2003 机器上的单个 Windows 服务中托管了两个 WCF 服务。如果 Windows 服务需要访问任一 WCF 服务(例如发生定时事件时),它会使用公开的五个命名管道端点之一(不同的服务协定)。该服务还为这两个服务中的每一个公开了 HTTP MetadataExchange 端点,并为服务器外部的消费者公开了 net.tcp 端点。
通常情况很好,但每隔一段时间我就会收到一条看起来像这样的错误消息:
System.ServiceModel.EndpointNotFoundException:在 net.pipe://localhost/IPDailyProcessing 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。---> System.IO.PipeException:在您的本地计算机上找不到管道端点“net.pipe://localhost/IPDailyProcessing”。--- 内部异常堆栈跟踪结束 --- 服务器堆栈跟踪:在 System.ServiceModel.Channels.PipeConnectionInitiator.GetPipeName(Uri uri) 在 System.ServiceModel.Channels.NamedPipeConnectionPoolRegistry.NamedPipeConnectionPool.GetPoolKey(EndpointAddress address, Uri via) 在System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan 超时)在 System.ServiceModel.Channels.ClientFramingDuplexSessionChannel。
它不会可靠地发生,这很让人抓狂,因为我无法在我想重复的时候重复它。在我的 Windows 服务中,我也有一些定时事件和一些文件侦听器,但这些是相当罕见的事件。有谁知道为什么我可能会遇到问题?任何帮助将不胜感激。