Poprawka: Wyjątek System.NotSupportedException jest generowany po uruchomieniu usługi IIS hostowana usługa WCF, która używa certyfikatu klienta do uwierzytelniania protokołu SSL

Dotyczy: .NET Framework 3.5 Service Pack 1

Objawy


Rozważ następujący scenariusz:
  • Tworzenie usługi Windows Communication Foundation (WCF), która jest obsługiwana w programie Internet Information Services (IIS).
  • Użyj klasy WebScriptEnablingBehavior usługi WCF.
  • Konfigurowanie usługi WCF w celu użycia certyfikatu klienta do uwierzytelniania protokołu Secure Sockets Layer (SSL). Aby to zrobić, właściwość ClientCredentialType jest ustawiona w pliku Web.config do certyfikatu.
W tym scenariuszu podczas uruchamiania usługi WCF, generowany jest wyjątek System.NotSupportedException i zostanie wyświetlony komunikat o błędzie podobny do następującego:
Ustawienia protokołu SSL dla usługi "Brak" nie zgadzać się z IIS "Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128".

Przyczyna


Ten problem występuje, ponieważ niektóre właściwości instancji element wiązania transportu HTTP nie są kopiowane do punktów końcowych serwera proxy generowanie kodu javascript.

Rozwiązanie


Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem.

Aby rozwiązać ten problem, skontaktuj się z biurem obsługi klienta Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej firmy Microsoft oraz informacje o pomocy technicznej odwiedź następującą witrynę firmy Microsoft w sieci Web:Uwaga W wyjątkowych przypadkach opłaty za połączenie z pomocą techniczną mogą zostać anulowane, jeśli specjalista firmy Microsoft zdecyduje że określona aktualizacja, może rozwiązać Twój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.

Wymagania wstępne

Musi mieć.NET Framework 3.5 z dodatkiem Service Pack 1 (SP1) zainstalować tę poprawkę.

Wymagania dotyczące ponownego uruchomienia

Nie musisz ponownie uruchamiać komputera po zainstalowaniu poprawki.

Informacje dotyczące zastępowania poprawek

Ta poprawka nie zastępuje żadnych innych poprawek.
Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania.
x86 w wersji dla systemu Windows 2000 Server, Windows Server 2003 i Windows XP
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
System.servicemodel.web.dll3.5.594.415256934422-Jul-200901:51x86

x64-bitowych wersji dla systemu Windows 2000 Server, Windows Server 2003 i Windows XP
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
System.servicemodel.web.dll3.5.594.4152491,52022-Jul-200902:13x64

Wersja dla systemu Windows 2000 Server, Windows Server 2003 i Windows XP opartych na procesorach Itanium
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
System.servicemodel.web.dll3.5.594.4152491,52022-Jul-200902:26IA-64

Stan


Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Obejście problemu


Aby obejść ten problem, hosta samodzielnego usługi WCF zamiast obsługujący usługę w usługach IIS.

Więcej informacji


Informacje zrzut stosu

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