Belirtiler
Aşağıdaki senaryoyu ele alalım:
- Internet Information Services'ta (IIS) barındırılan bir Windows Communication Foundation (WCF) hizmeti oluşturursunuz.
- WCF hizmetinde WebScriptEnablingBehavior sınıfını kullanırsınız.
- WCF hizmetini, Güvenli Yuva Katmanı (SSL) kimlik doğrulaması için bir istemci sertifikası kullanacak şekilde yapılandırırsınız. Bunu yapmak için, Web.config dosyasındaki ClientCredentialType özelliğini Sertifika olarak ayarlarsınız.
Bu senaryoda, WCF hizmetini çalıştırdığınızda System.NotSupportedException özel durumu oluşturulur ve aşağıdakine benzer bir hata iletisi alırsınız:
Not
'Yok' hizmeti için SSL ayarları IIS 'Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128' ayarları ile eşleşmiyor.
Neden
Bu sorun, HttpTransportBindingElement örneğinin bazı özellikleri otomatik olarak oluşturulan javascript ara sunucu uç noktalarına kopyalanmadığı için oluşur.
Çözüm
Artık Microsoft, desteklenen bir düzeltme sunmaktadır. Ancak, yalnızca bu makalede açıklanan sorunu düzeltmeye yöneliktir. Bunu yalnızca bu özel sorunun yaşandığı sistemlere uygulayın.
Bu sorunu gidermek için, Microsoft Müşteri Destek Hizmetleri'ne başvurarak düzeltmeyi edinin. Microsoft Müşteri Destek Hizmetleri telefon numaralarının tam listesi ve destek ücretleri hakkında bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support Not Özel durumlarda, bir Microsoft Desteği uzmanı belirli bir güncelleştirmenin sorunu çözeceğini belirlerse, normalde destek aramaları için yapılan ücretler iptal edilebilir. Ek destek soruları ve söz konusu güncelleştirme için uygun olmayan sorunlara normal destek ücretleri uygulanır.
Önkoşullar
Bu düzeltmeyi uygulamak için .NET Framework.NET Framework 3.5 Service Pack 1 (SP1) yüklü olmalıdır.
Yeniden başlatma gereksinimi
Düzeltmeyi yükledikten sonra bilgisayarı yeniden başlatmanız gerekmez.
Düzeltme değiştirme bilgileri
Bu düzeltme diğer düzeltmelerin yerine geçmez.
Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya öznitelikleri) sahiptir. Bu dosyaların tarihleri ve saatleri Eşgüdümlü Evrensel Saat'te (UTC) listelenmiştir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ile yerel saat arasındaki farkı bulmak için Denetim Masası'deki Tarih ve Saat öğesinde Saat Dilimi sekmesini kullanın.
Windows Server 2000, Windows Server 2003 ve Windows XP için x86 tabanlı sürüm
| Dosya adı | Dosya sürümü | Dosya boyutu | Tarih | Saat | Platform |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 569,344 | 22 Tem 2009 | 01:51 | x86 |
Windows Server 2000, Windows Server 2003 ve Windows XP için x64 tabanlı sürüm
| Dosya adı | Dosya sürümü | Dosya boyutu | Tarih | Saat | Platform |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 491,520 | 22 Tem 2009 | 02:13 | x64 |
Windows Server 2000, Windows Server 2003 ve Windows XP için Itanium tabanlı sürüm
| Dosya adı | Dosya sürümü | Dosya boyutu | Tarih | Saat | Platform |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 491,520 | 22 Tem 2009 | 02:26 | IA-64 Serisi |
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Geçici çözüm
Bu soruna geçici bir çözüm bulmak için, hizmeti IIS'de barındırmak yerine WCF hizmetini kendiniz barındırın.
Daha Fazla Bilgi
Yığın dökümü bilgileri
System.ServiceModel.dll!System.ServiceModel.Channels.HttpsChannelListener.ApplyHostedContext(System.ServiceModel.Activation.VirtualPathExtension virtualPathExtension, bool isMetadataListener) + 0x1b7 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.HttpsTransportBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x69 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes
System.ServiceModel.dll!System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x66 bytes
System.ServiceModel.Web.dll!System.ServiceModel.Channels.WebScriptMetadataMessageEncodingBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x4b bytes
System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes
System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, string listenUriRelativeAddress, System.ServiceModel.Description.ListenUriMode listenUriMode, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0xa6 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0x7c bytes
System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.AddMetadataEndpoint(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher, bool debugMode) + 0x698 bytes
System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.ApplyDispatchBehavior(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher) + 0x60 bytes