2009-08-07 12 views
10

Bir Windows Server 2003 makinede tek bir Windows Service barındırılan iki WCF hizmeti var. Windows servisinin WCF servislerinden birine erişmesi gerekiyorsa (zamanlanmış bir olay meydana geldiğinde olduğu gibi), belirtilen beş farklı boru uç noktasından birini kullanır (farklı servis sözleşmeleri). Hizmet ayrıca, her iki hizmet için HTTP MetadataExchange uç noktalarını ve sunucu dışındaki harici kullanıcılar için net.tcp uç noktalarını da gösterir.net.pipe de dinlemesibüyük uç nokta vardı: // localhost/

Genellikle şey harika çalışır ancak her seferinde bir süre içinde böyle bir şey görünen bir hata mesajı alıyorum:

System.ServiceModel.EndpointNotFoundException: net.pipe de dinlemesibüyük uç nokta vardı: // mesajı kabul eden localhost/IPDailyProcessing. Bu genellikle yanlış bir adres veya SOAP eyleminden kaynaklanır. Varsa, daha fazla ayrıntı için InnerException bölümüne bakın. ---> System.IO.PipeException: 'net.pipe: // localhost/IPDailyProcessing' boru uç noktası yerel makinenizde bulunamadı. --- iç durum yığın izleme sonu --- Sunucu yığın iz: System.ServiceModel.Channels.NamedPipeConnectionPoolRegistry.NamedPipeConnectionPool.GetPoolKey de System.ServiceModel.Channels.PipeConnectionInitiator.GetPipeName (URI) de (EndpointAddress adresi System.ServiceModel.Channels.CommunicationObject.Open de System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen (TimeSpan zaman aşımı) de System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection (TimeSpan zaman aşımı) de Uri ile) (TimeSpan zaman aşımı) System.ServiceModel.Channels.ServiceChannel.OnOpen (TimeSpan zaman aşımı) at System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan zaman aşımı) 012 System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call (ServiceChannel kanalı, TimeSpan zaman aşımı) System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce (TimeSpan zaman aşımı, CallOnceManager çağlayanı) adresindekiSystem.ServiceModel.Channels.ServiceChannel.Call de System.ServiceModel.Channels.ServiceChannel.EnsureOpened (TimeSpan zaman aşımı) de (string eylem, Boole oneway, ProxyOperationRuntime işlemi, nesne [] in, [] çıkışları, ZamanGeçişi zaman aşımı Nesne) System.ServiceModel.Channels.ServiceChannel.Call (String eylemi, Boolean oneway, ProxyOperationRuntime işlemi, Object [] ins, Object [] çıkışları) System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, ProxyOperationRuntime işlemi)Ben istediğinizde bunu tekrarlamak çünkü çıldırtıcı olduğunu System.ServiceModel.Channels.ServiceChannelProxy.Invoke (IMessage mesajı)

O güvenilir olmaz, en. Benim windows hizmetimde ayrıca bazı zamanlanmış olaylar ve bazı dosya dinleyicileri var, ama bunlar oldukça seyrek olaylar. Bir sorunla karşılaşmamın herhangi bir fikri var mı? Herhangi bir yardım büyük takdir edilecektir.

+0

Aynı sorunla uğraşıyorum, bir çözüm buldunuz mu? Periyodik olarak bu hata oluşur. Bazı durumlarda istisna şu şekildedir: 'Net.pipe: // localhost/d927b6b5-5994-4bd2-b92a-2fbdbae18d28/SendEmailWorkflow/Creation' son nokta adresindeki hizmetin gönderilememesi nedeniyle ileti gönderilemedi. adres'. IIS'de IIS/AppPool'un sıfırladığı hizmet sıfırlanır. – Rohland

cevap

0

Tartışmanız için almanca olup olmadığından emin değilim, çünkü .net adında hiçbir zaman boru kullanmadım, ancak .net tcp soket uç noktalarının bilinen bir hataya neden olduğunu hatırlıyorum. görünür bir neden olmaksızın sonlandırılıyor "ve ne yazık ki resmi MS cevabı, soketin hala bir mesaj göndermeden önce hala olduğunu kontrol etmeyi ve bunun olmadığı durumda yeniden açmayı kontrol eden bir" geçici çözüm "oldu. Adlandırılmış boru uç noktalarının "güvenilir TCP uç noktaları" kadar güvenilir olmadığını düşünmek isterim, ancak adlandırılmış borulara da uzanıp uzanmadığını görmek için "bilinen periyodik TCP soket hatası" na bakmak isteyebilirsiniz.Bu sorunun gerçekten bir cevap olmadığını ve bir mesaj göndermeden önce kontrol edilmemesini sağlamak için kontrol etmeme olasılığını eklemeniz gerektiğini tavsiye etmekten nefret ediyorum.

+0

Tanımladığınız "bilinen hata" ve "resmi MS yanıtı" ile ilgili herhangi bir bağlantı sağlayabilir misiniz? –

+0

@Chris Dickson: Biraz zaman geçti, ama onları bulmaya ve onları buraya eklemeye çalışacağım. Üzgünüm biraz zaman alırsa. –

+0

Tamam, şu anda sahip olduğumuz hatanın (o anda kendini uygun bir şekilde tanımlayamıyordu), o zamandan beri artık daha iyi belgelenmiş olan soket tükenmesiyle izole edildiği ortaya çıkıyor. Yani, prizlerinizi yormazsanız, önerimin geçerli olduğundan şüpheliyim. Henüz sokulmamış olsanız bile prizlerinizi tüketip yormadığınıza bakabilirsiniz. –

7

Hizmet yönetimi konsolunda "Net.Pipe Listener Adapter" hizmetinin çalışıp çalışmadığını kontrol edin. Bu, WAS tarafından adlandırılmış boru üzerinde herhangi bir istek almak için kullanılır.

+0

Ayrıca IIS altında barındırılan net.pipe kullanarak bu hata iletisini aldım. "iisreset" kendi sabit hiçbir şey, bu hizmeti yeniden başlatmak + 'iisreset 'sorunu giderdi. – jasper

0

Geçmişte benzer bir hatayı alıyorum ve doğru hatırlamıyorsam, verilerin servise/servise gönderilmesiyle ilgili bir sorun vardı. Benim durumumda sorun veri boyutundaydı (WSHttpBinding kullanmıştım, bu yüzden bir http varsayılan sınırı var). Sorunu çözdüğüm yol, ilgili yöntemlerde günlük kaydı eklemek, sorunlu verileri bulmak ve bazı hata ayıklama dostu ortamlarda sorunu yeniden oluşturmak ve bulduğunuz verilerle sürekli olarak (çökmesini) sağlamaktı. Benim durumumda, istisna mesajı, WCF'de bir sorun olan, sorunla ilgili değildi.

+0

Sadece tarih sonrası soruları gördüm :) Yazar: Sorunu çözdüyseniz - lütfen çözümü veya sorun nedenini gönderin. – Kamarey

İlgili konular