الإصلاح: يتم طرح استثناء System.NotSupportedException عند تشغيل خدمة WCF مستضافة من IIS تستخدم شهادة عميل لمصادقة SSL

ينطبق على
.NET Framework 3.5 Service Pack 1

الأعراض

يُرجى مراعاة السيناريو التالي:

  • يمكنك إنشاء خدمة Windows Communication Foundation (WCF) التي تتم استضافتها في خدمات معلومات الإنترنت (IIS).
  • يمكنك استخدام فئة WebScriptEnablingBehavior في خدمة WCF.
  • يمكنك تكوين خدمة WCF لاستخدام شهادة عميل لمصادقة طبقة مآخذ التوصيل الآمنة (SSL). للقيام بذلك، يمكنك تعيين الخاصية ClientCredentialType في ملف Web.config إلى Certificate.

في هذا السيناريو، عند تشغيل خدمة WCF، يتم طرح استثناء System.NotSupportedException وتتلقى رسالة خطأ تشبه ما يلي:

ملاحظة

لا تتطابق إعدادات SSL للخدمة 'None' مع إعدادات IIS 'Ssl وSslNegotiateCert وSslRequireCert وSslMapCert وSsl128'.

السبب

تحدث هذه المشكلة بسبب عدم نسخ بعض خصائص مثيل HttpTransportBindingElement إلى نقاط نهاية وكيل javascript التي تم إنشاؤها تلقائيا.

الدقة

يتوفر الآن إصلاح عاجل مدعوم من Microsoft. ومع ذلك، يهدف إلى تصحيح المشكلة التي تصفها هذه المقالة فقط. قم بتطبيقه فقط على الأنظمة التي تواجه هذه المشكلة المحددة.

لحل هذه المشكلة، اتصل بخدمات دعم عملاء Microsoft للحصول على الإصلاح العاجل. للحصول على قائمة كاملة بأرقام هواتف Microsoft Customer Support Services ومعلومات حول تكاليف الدعم، تفضل بزيارة موقع Microsoft على ويب التالي:

http://support.microsoft.com/contactus/?ws=support ملاحظة في حالات خاصة، قد يتم إلغاء الرسوم التي يتم تكبدها عادة لمكالمات الدعم إذا حدد أحد محترفي دعم Microsoft أن تحديثا معينا سيحل مشكلتك. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشكلات غير المؤهلة للتحديث المحدد المعني.

المتطلبات الأساسية

يجب أن يكون لديك .NET Framework 3.5 Service Pack 1 (SP1) مثبتا لتطبيق هذا الإصلاح العاجل.

متطلب إعادة التشغيل

ليس عليك إعادة تشغيل الكمبيوتر بعد تثبيت الإصلاح العاجل.

معلومات استبدال الإصلاح العاجل

لا يحل الإصلاح العاجل هذا محل أي الإصلاحات العاجلة الأخرى.
  يحتوي الإصدار الإنجليزية من هذا الإصلاح العاجل على سمات الملف (أو سمات الملف الأحدث) المدرجة في الجدول التالي. يتم سرد تواريخ وأوقات هذه الملفات في التوقيت العالمي المتفق عليه (UTC). عند عرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. للعثور على الفرق بين التوقيت العالمي المتفق عليه والوقت المحلي، استخدم علامة التبويب المنطقة الزمنية في عنصر التاريخ والوقت في لوحة التحكم.

الإصدار المستند إلى x86 ل Windows Server 2000 Windows Server 2003 وWindows XP

اسم الملف إصدار الملف حجم الملف التاريخ الوقت المنصة
System.servicemodel.web.dll 3.5.594.4152 569,344 22-يوليو 2009 01:51 x86

              

الإصدار المستند إلى x64 ل Windows Server 2000 Windows Server 2003 وWindows XP

اسم الملف إصدار الملف حجم الملف التاريخ الوقت المنصة
System.servicemodel.web.dll 3.5.594.4152 491,520 22-يوليو 2009 02:13 x64

              

الإصدار المستند إلى Itanium ل Windows Server 2000 Windows Server 2003 وWindows XP

اسم الملف إصدار الملف حجم الملف التاريخ الوقت المنصة
System.servicemodel.web.dll 3.5.594.4152 491,520 22-يوليو 2009 02:26 IA-64

              

الحالة

لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

الحل البديل

للتغلب على هذه المشكلة، استضيف خدمة WCF ذاتيا بدلا من استضافة الخدمة في IIS.

المزيد من المعلومات

معلومات تفريغ المكدس

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