IEVADS
Windows Communication Foundation (WCF) nav iespēju nodrošināto sūtīšanai un pēc tam saņemt nedrošs atbildes vai nedrošu ziņojumu sūtīšanai un saņemšanai nodrošinātas atbildes. Šajā rakstā aprakstītais labojumfails pievieno jaunu enableUnsecuredResponse atribūts. EnableUnsecuredResponse atribūtu noklusējuma vērtība ir viltus. Iestatot šo atribūtu vērtību True, tiek iespējots WCF šādi jauni līdzekļi:
-
WCF klienti var akceptēt nedrošs atbildes pat tad, ja, izmantojot drošligzdu slāņa (SSL) protokolu pierakstīties ziņojuma pamatteksts ir droši izejošo ziņojumu.
-
WCF pakalpojumi var nosūtīt nedrošs atbildes, kas ir bez drošības galvenes SOAP aploksnes pat tad, ja pieprasījums ir drošs.
Piezīme. EnableUnsecuredResponse atribūtu tikai attiecas tikai uz CustomBinding tips.
Risinājums
Ja izmantojat .NET Framework 3.0, instalējiet labojumfailu, kas aprakstīts šajā rakstā Microsoft zināšanu:
967105 FIX: labojumfails, kas ļauj WCF nodrošināto ziņojumu sūtīšanai un saņemšanai nedroši atbildes un nedrošu ziņojumu sūtīšanai un saņemšanai nodrošinātas atbildes ir pieejama .NET Framework 3.0Ja izmantojat .NET Framework 3.5 1. servisa pakotne Windows 7 vai Windows Server 2008 R2, instalējiet labojumfailu, kas aprakstīts šajā rakstā Microsoft zināšanu:
977420 labojumfailu pakotne ir pieejama novēršana sistēmā Windows Communication Foundation .NET Framework 3.5 SP1 sistēmai Windows 7 un Windows Server 2008 R2 Ja izmantojat citu operētājsistēmu .NET Framework 3.5 1. servisa pakotne, instalēt šo labojumfailu, lai novērstu šo problēmu. Pašlaik korporācija Microsoft piedāvā atbalstītu labojumfailu. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Izmantojiet to tikai tām sistēmām, kurām ir radusies tieši šī problēma. Iespējams, tiks veikta šī labojumfaila papildu testēšana. Tādēļ, ja jums ir šī problēma nerada nopietnus traucējumus, ieteicams pagaidīt nākamā servisa pakotne, kurā ir iekļauts šis labojumfails. Lai nekavējoties novērstu šo problēmu, sazinieties ar Microsoft klientu atbalsta pakalpojumu sniedzēju, lai iegūtu labojumfailu. Pilnīgu sarakstu ar Microsoft klientu atbalsta pakalpojumu sniedzēju tālruņu numuriem un informāciju par atbalsta izmaksām, apmeklējiet šo Microsoft Web vietu:
http://support.microsoft.com/contactus/?ws=supportPiezīme. Īpašos gadījumos standarta izmaksas par atbalsta zvaniem nav jāsedz, ja Microsoft atbalsta speciālists nosaka, ka šo problēmu novērsīs noteikts atjauninājums. Parasti atbalsta izmaksas tiek piemērotas jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.
Priekšnosacījumi
Lai lietotu šo labojumfailu, datorā jābūt instalētai .NET Framework 3.5 1. servisa pakotne.
Restartēšanas nepieciešamība
Nav jārestartē dators pēc šī labojumfaila lietošanas, ja tiek izmantota nekādā gadījumā .NET Framework.
Informācija par labojumfaila aizstāšanu
Šis labojumfails neaizstāj nevienu citu labojumfailu.
Informācija par failu
Šī labojumfaila versijai angļu valodā ir faila atribūti (vai jaunāki faila atribūti) Šajā tabulā sniegtie. Šo failu datumi un laiki ir norādīti atbilstoši universālajam koordinētajam laikam (UTC). Skatot faila informāciju, tā tiek pārvērsta atbilstoši vietējam laikam. Lai noskaidrotu atšķirību starp UTC un vietējo laiku, izmantojiet vadības paneļa vienuma Datums un laiks cilni Laika josla.
Informācija par failu x86 bitu versijas Windows Server 2003 un Windows XP
Faila nosaukums |
Faila versija |
Faila lielums |
Datums |
Laiks |
Platformas |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
17,240 |
01-Mar-2009 |
22:56 |
x86 |
System.runtime.serialization.dll |
3.0.4506.4119 |
970,752 |
01-Mar-2009 |
22:56 |
x86 |
System.servicemodel.dll |
3.0.4506.4119 |
5,931,008 |
01-Mar-2009 |
22:56 |
x86 |
Informācija par failu visas versijas, kuru pamatā ir x64 Windows Server 2003 un Windows XP
Faila nosaukums |
Faila versija |
Faila lielums |
Datums |
Laiks |
Platformas |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
19,304 |
01-Mar-2009 |
22:28 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4119 |
847,872 |
01-Mar-2009 |
22:28 |
x64 |
System.servicemodel.dll |
3.0.4506.4119 |
5,267,456 |
01-Mar-2009 |
22:28 |
x64 |
Informācija par failu visas versijas, kuru pamatā ir x86 Windows Vista SP2 un Windows Server 2008 SP2
Faila nosaukums |
Faila versija |
Faila lielums |
Datums |
Laiks |
---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
17,240 |
10-Jun-2009 |
06:55 |
System.runtime.serialization.dll |
3.0.4506.4120 |
970,752 |
10-Jun-2009 |
06:55 |
System.servicemodel.dll |
3.0.4506.4120 |
5,935,104 |
10-Jun-2009 |
06:55 |
Informācija par failu visas versijas, kuru pamatā ir x64 Windows Vista SP2 un Windows Server 2008 SP2
Faila nosaukums |
Faila versija |
Faila lielums |
Datums |
Laiks |
Platformas |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
19,288 |
10-Jun-2009 |
06:56 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4120 |
847,872 |
10-Jun-2009 |
06:56 |
x64 |
System.servicemodel.dll |
3.0.4506.4120 |
5,271,552 |
10-Jun-2009 |
06:56 |
x64 |
Informācija par failu versijām, Windows Server 2008 SP2 pamatā ir Itanium
Faila nosaukums |
Faila versija |
Faila lielums |
Datums |
Laiks |
Platformas |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
33,640 |
10-Jun-2009 |
06:56 |
IA-64 |
System.runtime.serialization.dll |
3.0.4506.4120 |
847,872 |
10-Jun-2009 |
06:56 |
IA-64 |
System.servicemodel.dll |
3.0.4506.4120 |
5,271,552 |
10-Jun-2009 |
06:56 |
IA-64 |
Statuss
Korporācija Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir minēti sadaļā "Attiecas uz".
Papildinformācija
Lai pārbaudītu enableUnsecuredResponse atribūtu, izmantojiet piemērs kodu:
PakalpojumsBindingElementCollection serviceBec = new BindingElementCollection();
SecurityBindingElement serviceSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement(); serviceSbe.EnableUnsecuredResponse = true; serviceBec.Add(serviceSbe); serviceBec.Add(new TextMessageEncodingBindingElement()); serviceBec.Add(new HttpTransportBindingElement()); Binding serviceBinding = new CustomBinding(serviceBec); ServiceHost serviceHost = new ServiceHost(typeof(RequestReply)); … serviceHost.Open();
Klients
BindingElementCollection clientBec = new BindingElementCollection();
SecurityBindingElement clientSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement(); clientSbe.EnableUnsecuredResponse = true; clientBec.Add(clientSbe); clientBec.Add(new TextMessageEncodingBindingElement()); clientBec.Add(new HttpTransportBindingElement()); Binding clientBinding = new CustomBinding(clientBec); IRequestReply channel = cf.CreateChannel(); try { channel.SendString("Hello"); cf.Close(); }