Labojums: System.NotSupportedException izņēmums tiek izmests, ja palaižat IIS viesotu WCF pakalpojumu, kas izmanto klienta sertifikātu SSL autentifikācijai

Attiecas uz
.NET Framework 3.5 Service Pack 1

Pazīmes

Apsveriet šādu scenāriju:

  • Jūs izveidojat Windows Communication Foundation (WCF) pakalpojumu, kas tiek viesots interneta informācijas pakalpojumos (IIS).
  • Jūs izmantojat WCF pakalpojuma klasi WebScriptEnablingBehavior.
  • WCF pakalpojums tiek konfigurēts tā, lai drošligzdu slāņa (SSL) autentifikācijai izmantotu klienta sertifikātu. Lai to izdarītu, Web.config faila rekvizītam ClientCredentialType ir jāiestata vērtība Certificate.

Šādā scenārijā, palaižot WCF pakalpojumu, tiek mests System.NotSupportedException izņēmums un saņemat kļūdas ziņojumu, kas līdzīgs šim:

Piezīme

Pakalpojuma "Nav" SSL iestatījumi neatbilst IIS "Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128" iestatījumiem.

Iemesls

Šī problēma rodas, jo daži HttpTransportBindingElement instances rekvizīti netiek kopēti automātiski ģenerētajos javascript starpniekservera galapunktos.

Risinājums

Atbalstīts labojumfails tagad ir pieejams no Microsoft. Tomēr tas ir paredzēts, lai labotu tikai šajā rakstā aprakstīto problēmu. Lietojiet to tikai sistēmām, kurās rodas šī konkrētā problēma.

Lai atrisinātu šo problēmu, sazinieties ar Microsoft klientu atbalsta dienestu un iegūstiet labojumfailu. Lai iegūtu pilnu sarakstu ar Microsoft klientu atbalsta dienesta tālruņa numuriem un informāciju par atbalsta izmaksām, apmeklējiet šo Microsoft vietni:

http://support.microsoft.com/contactus/?ws=support Piezīme Īpašos gadījumos maksa, kas parasti tiek piemērota par atbalsta zvaniem, var tikt atcelta, ja Microsoft atbalsta speciālists nosaka, ka problēma tiks novērsta, instalējot noteiktu atjauninājumu. Parasti atbalsta izmaksas attiecas uz jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.

Priekšnosacījumi

Lai lietotu šo labojumfailu, jābūt instalētai ..NET Framework 3.5 1. servisa pakotnei (SP1).

Restartēšanas prasības

Pēc labojumfaila instalēšanas nav jārestartē dators.

Informācija par labojumfailu aizstāšanu

Šis labojumfails neaizstāj citus labojumfailus.
  Šī labojumfaila angļu valodas versijā ir faila atribūti (vai vēlāki faila atribūti), kas norādīti tālāk esošajā tabulā. Šo failu datums un laiks ir norādīts atbilstoši universālajam koordinētajam laikam (UTC). Kad skatāt faila informāciju, tā tiek pārvērsta par vietējo laiku. Lai uzzinātu atšķirību starp UTC un vietējo laiku, izmantojiet cilni Laika josla vadības paneļa vienumā Datums un laiks.

x86 bāzes versija Windows Server 2000, Windows Server 2003 un Windows XP

Faila nosaukums Faila versija Faila lielums Datums Laiks Platforma
System.servicemodel.web.dll 3.5.594.4152 569,344 2009. gada 22. jūlijs 01:51 x86

              

x64 bitu versija Windows Server 2000, Windows Server 2003 un Windows XP

Faila nosaukums Faila versija Faila lielums Datums Laiks Platforma
System.servicemodel.web.dll 3.5.594.4152 491,520 2009. gada 22. jūlijs 02:13 x64

              

Itanium versija Windows Server 2000, Windows Server 2003 un Windows XP

Faila nosaukums Faila versija Faila lielums Datums Laiks Platforma
System.servicemodel.web.dll 3.5.594.4152 491,520 2009. gada 22. jūlijs 02:26 IA-64

              

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Risinājums

Lai novērstu šo problēmu, viesojiet WCF pakalpojumu, nevis viesojiet pakalpojumu IIS.

Papildinformācija

Steka izmetes informācija

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