תיקון: המערכת.NotSupportedException חריגה התריעה בעת הפעלת שירות WCF מתארח של IIS המשתמש באישור לקוח עבור אימות SSL

חל על
.NET Framework 3.5 Service Pack 1

סימפטומים

בחן את התרחיש הבא:

  • אתה יוצר שירות של Windows Communication Foundation (WCF) המתארח ב- Internet Information Services (IIS).
  • עליך להשתמש בכיתה WebScriptEnablingBehavior בשירות WCF.
  • עליך להגדיר את שירות WCF לשימוש באישור לקוח עבור אימות Secure Sockets Layer (SSL). לשם כך, עליך להגדיר את המאפיין ClientCredentialType בקובץ Web.config לאישור.

בתרחיש זה, בעת הפעלת שירות WCF, התריעה על חריגת System.NotSupportedException ואתה מקבל הודעת שגיאה הדומה להודעה הבאה:

הערה

הגדרות SSL עבור השירות 'ללא' אינן תואמות לאלה של IIS 'Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128'.

גורם

בעיה זו מתרחשת מכיוון שמאפיינים מסוימים של המופע HttpTransportBindingElement אינם מועתקים אל נקודות הקצה של Proxy מסוג javascript שנוצר באופן אוטומטי.

פתרון

תיקון חם נתמך זמין כעת מ- Microsoft. עם זאת, הוא מיועד לפתור רק את הבעיה שמאמר זה מתאר. החל אותו רק על מערכות שנתקלות בבעיה ספציפית זו.

כדי לפתור בעיה זו, פנה אל שירותי התמיכה בלקוחות של Microsoft כדי לקבל את התיקון החם. לקבלת רשימה מלאה של מספרי הטלפון של שירותי התמיכה בלקוחות של Microsoft ומידע אודות עלויות תמיכה, בקר באתר האינטרנט הבא של Microsoft:

http://support.microsoft.com/contactus/?ws=support הערה במקרים מיוחדים, חיובים שנצבורים בדרך כלל עבור שיחות תמיכה עשויים להבוטל אם מומחה תמיכה של Microsoft קובע שעדכון ספציפי יפתור את הבעיה. עלויות התמיכה הרגילות יחולו על שאלות ובעיות תמיכה נוספות שלא עומדות בדרישות לעדכון הספציפי הרלוונטי.

דרישות מוקדמות

כדי להחיל תיקון חם זה, עליך להתקין .NET Framework Service Pack 1 (SP1) של 3.5.

‏‏דרישת הפעלה מחדש

אין צורך להפעיל מחדש את המחשב לאחר התקנת התיקון החם.

מידע על החלפת תיקונים חמים

תיקון חם זה אינו מחליף תיקונים חמים אחרים.
  הגירסה האנגלית של תיקון חם זה כוללת את תכונות הקובץ (או תכונות קובץ מתקדמות יותר) המפורטות בטבלה הבאה. התאריכים והשעות עבור קבצים אלה מפורטים בזמן אוניברסלי מתואם (UTC). בעת הצגת פרטי הקובץ, הוא מומר לזמן מקומי. כדי למצוא את ההבדל בין זמן 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 (IA-64)

              

מצב

Microsoft אישרה שזוהי בעיה במוצרי Microsoft המפורטים בסעיף "חל על".

פתרון

כדי לעקוף בעיה זו, ארח באופן עצמי את שירות WCF במקום לארח את השירות ב- IIS.

מידע נוסף

פרטי Dump של ערימה

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