Ho due servizi WCF ospitati in un singolo servizio di Windows su un computer Windows Server 2003. Se il servizio di Windows deve accedere a uno dei servizi WCF (come quando si verifica un evento temporizzato), utilizza uno dei cinque endpoint della pipa denominati esposti (contratti di servizio diversi). Il servizio espone anche endpoint HTTP MetadataExchange per ciascuno dei due servizi e endpoint net.tcp per utenti esterni al server.Nessun endpoint in ascolto su net.pipe: // localhost/
Di solito le cose funzionano molto bene, ma ogni tanto ricevo un messaggio di errore simile a questa:
System.ServiceModel.EndpointNotFoundException: Non c'era nessun punto finale ascolto a net.pipe: // localhost/IPDailyProcessing che potrebbe accettare il messaggio. Questo è spesso causato da un indirizzo errato o un'azione SOAP. Vedi InnerException, se presente, per maggiori dettagli. ---> System.IO.PipeException: l'endpoint del tubo 'net.pipe: // localhost/IPDailyProcessing' non è stato trovato sul computer locale. --- Fine dell'analisi dello stack eccezione interna --- Server stack trace: a System.ServiceModel.Channels.PipeConnectionInitiator.GetPipeName (Uri uri) a System.ServiceModel.Channels.NamedPipeConnectionPoolRegistry.NamedPipeConnectionPool.GetPoolKey (indirizzo EndpointAddress , Uri via) a System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection (TimeSpan timeout) a System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen (TimeSpan timeout) a System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan timeout) su System.ServiceModel.Channels.ServiceChannel.OnOpen (timeout TimeSpan) su System.ServiceModel.Channels.CommunicationObject.Open (timeout TimeSpan) a System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call (canale ServiceChannel, TimeSpan timeout) a System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce (TimeSpan timeout, CallOnceManager cascata) su System.ServiceModel.Channels.ServiceChannel.EnsureOpened (timeout TimeSpan) su System.ServiceModel.Channels.ServiceChannel.Call (azione String, oneway booleana, operazione ProxyOperationRuntime, Object [] ins, Object [] outs, timeout TimeSpan) a System.ServiceModel.Channels.ServiceChannel.Call (Azione stringa, Booleano oneway, Operazione ProxyOperationRuntime, Object [] ins, Object [] outs) su System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (metodo IMethodCallMessageCall, operazione ProxyOperationRuntime) presso System.ServiceModel.Channels.ServiceChannelProxy.Invoke (messaggio IMessage)
Non succede in modo affidabile, che è esasperante perché non riesco a ripeterlo quando voglio. Nel mio servizio Windows ho anche alcuni eventi temporizzati e alcuni listener di file, ma questi sono eventi abbastanza rari. Qualcuno ha qualche idea del perché potrei incontrare un problema? Qualsiasi aiuto sarebbe molto apprezzato.
Sto lottando con lo stesso problema, hai mai trovato una soluzione? Periodicamente si verifica questo errore. In alcuni casi l'eccezione è "Non è stato possibile inviare il messaggio perché il servizio all'indirizzo endpoint" net.pipe: // localhost/d927b6b5-5994-4bd2-b92a-2fbdbae18d28/SendEmailWorkflow/Creazione "non è disponibile per il protocollo del indirizzo'. Il servizio non è ospitato in IIS, quindi esclude i ripristini IIS/AppPool. – Rohland