2010-06-15 14 views
6

Windows Server 08, sp2 üzerinde IIS7'de bir WCF hizmetine ev sahipliği yapıyorum. Hizmet kendi web sitesi olarak barındırılıyor ve bir NET.TCP son nokta üzerinden ortaya çıkıyor. Servis yeniden başlat/iisreset komutu verilmeden mükemmel bir şekilde çalışır. Ben herhangi bir servis çağrı yaptığınızdarestart/iisreset NET.TCP protokolünü devre dışı bırakır mı?

yeniden başlatma veya iisreset sonra, aşağıdaki hatayı alırsınız: 'System.ServiceModel.EndpointNotFoundException: Mesaj sevk edilemedi çünkü son nokta adreste hizmet' Net.tcp: // [website]/[service_name] .svc 'adres protokolü için kullanılamaz.'

Sunucunun olay günlüğü aşağıdaki hatayı gösterir: 'Yapılandırılmış ProcessHandlerType'ı okumaya ve başlatmaya çalışırken bir hata oluştu. durum: System.ArgumentException mesaj: Bilinmeyen protokol ID 'Net.tcp'. StackTrace: bunu düzeltmek nasıl: System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel (Dize protocolId, IListenerChannelCallback listenerChannelCallback) '

Soru at? Iisreset'ten sonra neden NET.TCP protokolü devre dışı bırakıldı? Bu bir hata mı? Bazı yapılandırmaları kaçırıyor muyum?

IIS kurulum ayrıntıları: - Sunucu 08 ve 08 R2 - Bağlar: http Net.TCP (808: *) - EnabledProtols: http Net.TCP. - Sitenin appPool kimliği belirli bir kullanıcıya ayarlandı. burada mevcut

örnek kod: http://drop.io/wcfTcpSampleService

Teşekkür

+1

Hacky (teslim edilemez) Çözüm: (1) NET.TCP'yi sitenin EnabledProtocols (2) iisreset (3) sitesinden kaldırdıktan sonra tekrar NET.TCP'yi sitenin EnabledProtocols uygulamasına eklerim. Site, iisreset yeniden yayınlanana kadar çalışmaya devam ediyor. IIS, NET.TCP zaten eklendiğinde, IIS başlatılmıyorken, EnabledProtocols için NET.TCP eklerken IIS bir şeyler yapıyor. –

+0

Bu olduğunda, Net.Tcp Listner hizmetinin durumu nedir? Net.Tcp Listner hizmeti başlangıç ​​türü ne ayarlanır? Sistem veya Uygulama olay kayıtlarında bir şey var mı? –

+0

Net.Tcp Dinleyici Bağdaştırıcısı başlatıldı (başlangıç ​​türü: Otomatik). Olay günlüğündeki hata 'Yapılandırılmış ProcessHandlerType'ı okumaya ve başlatmaya çalışırken bir hata oluştu. Özel Durum: System.ArgumentException İleti: Bilinmeyen iletişim kuralı kimliği 'NET.TCp'. StackTrace: at System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel (String protocolId, IListenerChannelCallback dinleyicisiChannelCallback) ' –

cevap

9

Çözüldü. Sorun, büyük/küçük harfe duyarlıdır. Web uygulamasının AdvancedSettings alanında EnabledProtocols alanının küçük olması gerekir, örneğin 'net.tcp' (bunu MS desteğinden öğrendim).

EnabledProtocols alanının ("... NET.TCP ... gibi değerlerin eklenmesi") açıklaması nedeniyle 'NET.TCP' büyük harf olması gerektiğini (aptalca) kabul ettim.

Garip, bilinmeyen sorun, ilk defa 'NET.TCP' ile çalışmasının nedeni budur, ancak bu başka bir sorundur.

Herkese yardım ettiğiniz her şey için teşekkürler.

+0

MS desteğinden, vaka duyarlılığı ile ilgili herhangi bir bağlantı var mı? – alexandrul

+0

@alexandrul MS destek sorumlusu, yalnızca vaka duyarlılığını açıklayan bir iç bağlantıya sahipti. –

+0

Bu soruna Windows Server 2012 çalıştırıyorsunuz. Net.tcp durumunun değiştirilmesi fark yaratmadı. Başka biri var mı? – bkstill

0

aslında tam IISRESET yapmak gerekir mi? Web'de barındırılan bir uygulamayı tamamen yeniden başlatmaya ihtiyaç duyduğunda "modern" önerilen yöntemin, uygulama havuzunu şu şekilde geri dönüştürdüğüne inanıyorum: iisapp /a <App_Pool_ID> /r (Windows 2003) veya appcmd recycle apppool /apppool.name:<App_Pool_Name> (Windows 2008).

+0

Ne yazık ki, bu hizmet birçok kişinin erişebileceği bir makinede barındırılacak ve iisreset yapmasını engelleyemem. Makine yeniden başlatıldığında sorun da ortaya çıkar. –

1

Eğer Net.TCP ve HTTP protokolleri için farklı bağlantı noktaları kullanabilir miyim? Benim PC olduğum herşeyi

Güncelleme

olması gerektiği gibi çalışır ve ben yeniden başlatma ve iisreset'i hem çalıştılar. Aynı yerde ikili dosyalar (Visual Web Developer 2010 Express kullanılmış) ve IIS ayarlarının ekran görüntüsü de dahil olmak üzere projenize yükledim. Uygulama havuzu, .NET 4.0'a entegre edilmiştir.

iis7 http://www.freeimagehosting.net/uploads/1a727d66ce.png

+0

Bu sorun, http için 80 ve 8008 ve tcp için 808, 8009, 8089, 9200 bağlantı noktalarını kullanarak yaşadım. –

+0

@Kevin Bir örnek WCF servisi ile oynamak için yükleyebilirsiniz? – alexandrul

+0

Orijinal sorudaki d/l konumuna bir bağlantı ekledim. –

0

.NET hangi sürümleri var mı (ya da vardı) genel kurulu?

TCP hizmetlerinin RC yüklemesinden (artık var olmadığından) hizmetlerin durmasına neden olduğu için .NET 4 RC'den RTM'ye giderken çok benzer bir sorun yaşadım.

+0

.NET sürüm 2.0, 3.0, 3.5. Hem Sunucu 08 hem de 08 R2 makineleri yepyeni kurulumlardı (bir VM ve bir fiziksel makine). –