Simptome
Luați în considerare următorul scenariu:
- Creați un serviciu Windows Communication Foundation (WCF) care este găzduit în Internet Information Services (IIS).
- Utilizați clasa WebScriptEnablingBehavior în serviciul WCF.
- Configurați serviciul WCF să utilizeze un certificat client pentru autentificarea Secure Sockets Layer (SSL). Pentru a face acest lucru, setați proprietatea ClientCredentialType din fișierul Web.config la Certificat.
În acest scenariu, atunci când rulați serviciul WCF, este generată o excepție System.NotSupportedException și primiți un mesaj de eroare care seamănă cu următorul:
Notă
Setările SSL pentru serviciul "None" nu se potrivesc cu cele ale IIS "Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128".
Cauză
Această problemă apare deoarece unele proprietăți ale instanței HttpTransportBindingElement nu sunt copiate în punctele finale proxy javascript generate automat.
Rezolvare
O remediere rapidă acceptată este acum disponibilă de la Microsoft. Cu toate acestea, ea este menită să corecteze doar problema descrisă în acest articol. Aplicați-o doar sistemelor care se confruntă cu această problemă specifică.
Pentru a rezolva această problemă, contactați Serviciile de asistență clienți Microsoft pentru a obține remedierea rapidă. Pentru o listă completă a numerelor de telefon ale Serviciilor de asistență pentru clienții Microsoft și informații despre costurile de asistență, vizitați următorul site web Microsoft:
http://support.microsoft.com/contactus/?ws=support Notă În cazuri speciale, costurile implicate de obicei pentru apelurile de asistență pot fi revocate dacă un specialist de la Asistență Microsoft stabilește că o anumită actualizare va rezolva problema. Costurile uzuale de suport se vor aplica pentru întrebări suplimentare de suport și pentru probleme ce nu fac obiectul actualizării în chestiune.
Cerințe preliminare
Trebuie să aveți .NET Framework 3.5 Service Pack 1 (SP1) instalat pentru a aplica această remediere rapidă.
Cerința de repornire
Nu este necesar să reporniți computerul după ce instalați remedierea rapidă.
Informații despre înlocuirea remedierii rapide
Această remediere rapidă nu înlocuiește alte remedieri rapide.
Versiunea în limba engleză a acestei remedieri rapide are atributele de fișier (sau atributele de fișier mai recente) listate în tabelul următor. Datele și orele pentru aceste fișiere sunt listate în UTC. Când vizualizați informațiile despre fișier, acestea sunt convertite la ora locală. Pentru a găsi diferența dintre UTC și ora locală, utilizați fila Fus orar din elementul Dată și oră din Panou de control.
versiune x86 pentru Windows Server 2000, Windows Server 2003 și Windows XP
| Nume fișier | Versiune de fișier | Dimensiune fișier | Dată | Oră | Platformă |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 569,344 | 22-Iul-2009 | 01:51 | x86 |
versiune x64 pentru Windows Server 2000, Windows Server 2003 și Windows XP
| Nume fișier | Versiune de fișier | Dimensiune fișier | Dată | Oră | Platformă |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 491,520 | 22-Iul-2009 | 02:13 | x64 |
Versiune Itanium pentru Windows Server 2000, Windows Server 2003 și Windows XP
| Nume fișier | Versiune de fișier | Dimensiune fișier | Dată | Oră | Platformă |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 491,520 | 22-Iul-2009 | 02:26 | IA-64 |
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Soluție
Pentru a evita această problemă, găzduiți singur serviciul WCF, nu găzduiți serviciul în IIS.
Mai multe informații
Stack dump information
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