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

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

Συμπτώματα


Εξετάστε το ακόλουθο σενάριο:
  • Δημιουργία μιας υπηρεσίας της υποδομής επικοινωνιών των Windows (WCF) που φιλοξενείται στις υπηρεσίες πληροφοριών Internet (IIS).
  • Μπορείτε να χρησιμοποιήσετε την κλάση WebScriptEnablingBehavior στην υπηρεσία WCF.
  • Ρυθμίστε τις παραμέτρους της υπηρεσίας WCF για να χρησιμοποιήσετε ένα πιστοποιητικό προγράμματος-πελάτη για έλεγχο ταυτότητας Secure Sockets Layer (SSL). Για να γίνει αυτό, μπορείτε να ορίσετε την ιδιότητα ClientCredentialType στο αρχείο Web.config στο πιστοποιητικό.
Σε αυτό το σενάριο, όταν εκτελείτε την υπηρεσία WCF, μια εξαίρεση System.NotSupportedException και λαμβάνετε ένα μήνυμα λάθους που μοιάζει με το ακόλουθο:
Οι ρυθμίσεις SSL για την υπηρεσία 'Καμία' δεν ταιριάζουν με εκείνες του IIS "Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128".

Αιτία


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

Προτεινόμενη αντιμετώπιση


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

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

Προϋποθέσεις

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

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

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

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

Αυτή η επείγουσα επιδιόρθωση δεν αντικαθιστά άλλες επείγουσες επιδιορθώσεις.
Η αγγλική έκδοση αυτής της άμεσης επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα χαρακτηριστικά αρχείου) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για τα αρχεία αυτά αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλλετε τις πληροφορίες του αρχείου, μετατρέπεται σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε την καρτέλα Zώνη ώρας στο στοιχείο Hμερομηνία και ώρα " στον πίνακα ελέγχου.
έκδοση για τα Windows 2000 Server, Windows Server 2003 και Windows XP που βασίζεται σε x86
Όνομα αρχείουΈκδοση αρχείουΜέγεθος αρχείουΗμ/νίαΏραΠλατφόρμα
System.servicemodel.web.dll3.5.594.4152569,34422-Jul-200901:51x86

έκδοση για τα Windows 2000 Server, Windows Server 2003 και Windows XP που βασίζεται σε x64
Όνομα αρχείουΈκδοση αρχείουΜέγεθος αρχείουΗμ/νίαΏραΠλατφόρμα
System.servicemodel.web.dll3.5.594.4152491,52022-Jul-200902:13x64

Έκδοση για τα Windows 2000 Server, Windows Server 2003 και Windows XP που βασίζεται σε τεχνολογία Itanium
Όνομα αρχείουΈκδοση αρχείουΜέγεθος αρχείουΗμ/νίαΏραΠλατφόρμα
System.servicemodel.web.dll3.5.594.4152491,52022-Jul-200902:26IA-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