INTRODUKSJON
Windows Communication Foundation (WCF) har ikke funksjonalitet til å sende sikre meldinger og deretter motta usikret svar, eller for å sende usikret meldinger og motta svar på sikret. Hurtigreparasjonen som er beskrevet i denne artikkelen, legger til et nytt enableUnsecuredResponse -attributt. Standardverdien for enableUnsecuredResponse -attributtet er false. Hvis du setter verdien til attributtet til true, aktiveres følgende nye funksjoner i WCF:
-
WCF klienter kan godta usikret svar, selv om de utgående meldingene er sikret ved hjelp av Secure Socket Layer (SSL)-protokollen til å signere meldingen.
-
WCF-tjenester kan sende usikret svar som har ingen sikkerhetshodet i SOAP-konvolutter, selv om forespørselen er sikret.
Obs! EnableUnsecuredResponse -attributtet bare gjelder bare for CustomBinding .
Løsning
Hvis du bruker .NET Framework 3.0, installerer du hurtigreparasjonen som er beskrevet i følgende Microsoft Knowledge Base-artikkel:
Løs 967105 : en hurtigreparasjon som gjør det mulig for WCF å sende sikre meldinger og motta usikret svar, og å sende usikret meldinger og motta svar på sikret, er tilgjengelig for .NET Framework 3.0Hvis du bruker .NET Framework 3.5 Service Pack 1 på Windows 7 eller Windows Server 2008 R2, installerer du hurtigreparasjonen som er beskrevet i følgende Microsoft Knowledge Base-artikkel:
977420 en samleoppdatering er tilgjengelig for å løse problemer i Windows Communication Foundation for .NET Framework 3.5 SP1 for Windows 7 og Windows Server 2008 R2 Hvis du bruker .NET Framework 3.5 Service Pack 1 på andre operativsystemer, må du installere følgende hurtigreparasjon for å løse problemet. En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke som inneholder denne hurtigreparasjonen. Hvis du vil løse dette problemet umiddelbart, kontakter du Microsoft Kundestøtte for å få hurtigreparasjonen. For en fullstendig liste over telefonnumre for Microsofts kundestøttetjenester og informasjon om støttekostnader, kan du gå til følgende Microsoft-webområde:
http://support.microsoft.com/contactus/?ws=supportObs! I spesielle tilfeller kan avgifter som vanligvis påløper for oppringinger til kundestøtte kanselleres hvis en Microsoft-tekniker avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.
Forutsetninger
Du må ha .NET Framework 3.5 Service Pack 1 for å bruke denne hurtigreparasjonen.
Krav om omstart
Du har ikke datamaskinen på nytt etter at du har installert denne hurtigreparasjonen hvis ingen forekomster av .NET Framework som brukes.
Informasjon om erstatning av hurtigreparasjoner
Denne hurtigreparasjonen erstatter ikke andre hurtigreparasjoner.
Filinformasjon
Den engelskspråklige versjonen av denne hurtigreparasjonen har filattributtene (eller senere filattributter) som er oppført i følgende tabell. Datoene og klokkeslettene for disse filene er oppført i Coordinated Universal Time (UTC). Når du viser filinformasjonen, konverteres den til lokal tid. Hvis du vil finne forskjellen mellom UTC og lokal tid, kan du bruke kategorien tidssone under dato og klokkeslett i Kontrollpanel.
Filinformasjon for alle x86-baserte versjoner av Windows Server 2003 og Windows XP
Filnavn |
Filversjon |
Filstørrelse |
Dato |
Tid |
Plattform |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
17,240 |
01-Jun-2009 |
22:56 |
x86 |
System.runtime.serialization.dll |
3.0.4506.4119 |
970,752 |
01-Jun-2009 |
22:56 |
x86 |
System.servicemodel.dll |
3.0.4506.4119 |
5,931,008 |
01-Jun-2009 |
22:56 |
x86 |
Filinformasjon for alle x64-baserte versjoner av Windows Server 2003 og Windows XP
Filnavn |
Filversjon |
Filstørrelse |
Dato |
Tid |
Plattform |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
19,304 |
01-Jun-2009 |
22:28 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4119 |
847,872 |
01-Jun-2009 |
22:28 |
x64 |
System.servicemodel.dll |
3.0.4506.4119 |
5,267,456 |
01-Jun-2009 |
22:28 |
x64 |
Filinformasjon for alle x86-baserte versjoner av Windows Vista SP2 og Windows Server 2008 SP2
Filnavn |
Filversjon |
Filstørrelse |
Dato |
Tid |
---|---|---|---|---|
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 |
Filinformasjon for alle x64-baserte versjoner av Windows Vista SP2 og Windows Server 2008 SP2
Filnavn |
Filversjon |
Filstørrelse |
Dato |
Tid |
Plattform |
---|---|---|---|---|---|
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 |
Filinformasjon for alle Itanium-based-versjoner av Windows Server 2008 SP2
Filnavn |
Filversjon |
Filstørrelse |
Dato |
Tid |
Plattform |
---|---|---|---|---|---|
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 |
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Hvis du vil ha mer informasjon
Bruk den følgende eksempelkoden til å teste enableUnsecuredResponse -attributt:
ServiceBindingElementCollection 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();
Klienten
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(); }