ΕΠΙΔΙΌΡΘΩΣΗ: Δημιουργείται μια εξαίρεση System.NotSupportedException κατά την εκτέλεση μιας υπηρεσίας WCF που φιλοξενείται από τις υπηρεσίες IIS που χρησιμοποιεί ένα πιστοποιητικό υπολογιστή-πελάτη για έλεγχο ταυτότητας SSL

Ισχύει για
.NET Framework 3.5 Service Pack 1

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο:

  • Μπορείτε να δημιουργήσετε μια υπηρεσία υποδομής επικοινωνιών των Windows (WCF) που φιλοξενείται στις υπηρεσίες Internet Information Services (IIS).
  • Μπορείτε να χρησιμοποιήσετε την κλάση WebScriptEnablingBehavior στην υπηρεσία WCF.
  • Μπορείτε να ρυθμίσετε τις παραμέτρους της υπηρεσίας WCF για να χρησιμοποιήσετε ένα πιστοποιητικό υπολογιστή-πελάτη για έλεγχο ταυτότητας Secure Sockets Layer (SSL). Για να το κάνετε αυτό, μπορείτε να ορίσετε την ιδιότητα ClientCredentialType στο αρχείο Web.config σε πιστοποιητικό.

Σε αυτό το σενάριο, όταν εκτελείτε την υπηρεσία WCF, δημιουργείται μια εξαίρεση System.NotSupportedException και λαμβάνετε ένα μήνυμα λάθους παρόμοιο με το ακόλουθο:

Σημείωση

Οι ρυθμίσεις SSL για την υπηρεσία 'None' δεν ταιριάζουν με αυτές των υπηρεσιών IIS 'Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128'.

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή ορισμένες ιδιότητες της παρουσίας HttpTransportBindingElement δεν αντιγράφονται στα τελικά σημεία διακομιστή μεσολάβησης javascript αυτόματης δημιουργίας.

Επίλυση

Μια υποστηριζόμενη επείγουσα επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται να διορθώσει μόνο το ζήτημα που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε το μόνο σε συστήματα που αντιμετωπίζουν αυτό το συγκεκριμένο πρόβλημα.

Για να επιλύσετε αυτό το ζήτημα, επικοινωνήστε με τις υπηρεσίες υποστήριξης πελατών της Microsoft για να αποκτήσετε την επείγουσα επιδιόρθωση. Για μια πλήρη λίστα των αριθμών τηλεφώνου των υπηρεσιών υποστήριξης πελατών της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:

http://support.microsoft.com/contactus/?ws=support Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που προκύπτουν κανονικά για κλήσεις υποστήριξης ενδέχεται να ακυρωθούν, εάν ένας μηχανικός υποστήριξης της Microsoft καθορίσει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση, θα ισχύσουν οι συνηθισμένες χρεώσεις υποστήριξης.

Προαπαιτούμενα

Πρέπει να έχετε το .NET Framework 3.5 Service Pack 1 (SP1) εγκατεστημένο για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση.

Απαίτηση επανεκκίνησης

Δεν χρειάζεται να κάνετε επανεκκίνηση του υπολογιστή μετά την εγκατάσταση της επείγουσας επιδιόρθωσης.

Πληροφορίες αντικατάστασης επείγουσας επιδιόρθωσης

Αυτή η επείγουσα επιδιόρθωση δεν αντικαθιστά άλλες επείγουσες επιδιορθώσεις.
  Η αγγλική έκδοση αυτής της επείγουσας επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον ακόλουθο πίνακα. Οι ημερομηνίες και οι ώρες για αυτά τα αρχεία παρατίθενται σε συντονισμένη παγκόσμια ώρα (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

              

Έκδοση που βασίζεται σε επεξεργαστή x 64 για τα 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