Ytelsesproblemet når du bruker WCF for å sende XML-SOAP-meldinger i .NET Framework 4.6

VIKTIG: Denne artikkelen ble oversatt med maskinoversettelsesprogramvare fra Microsoft og muligens redigert av Microsoft Community via CTF-teknologi i stedet for av en oversetter. Microsoft tilbyr både menneskelig oversatte og maskinoversatte/Community-redigerte artikler, slik at du får tilgang til alle artiklene i vår Knowledge Base på ditt eget språk. En maskinoversatt eller Community-redigert artikkel er imidlertid ikke alltid perfekt. Den kan inneholde feil i vokabular, syntaks eller grammatikk, mye likt en fremmedspråklig som forsøker å snakke språket ditt. Microsoft har ikke ansvar for unøyaktige opplysninger, feil eller skade forårsaket av feilaktig oversettelse av innholdet eller kundenes bruk av informasjonen. Microsoft oppdaterer jevnlig maskinoversettelsesprogramvaren og -verktøyene for å forbedre redigering av maskinoversatte tekster.

Den engelske versjonen av denne artikkelen er den følgende: 3076436
Symptom
Anta at du har oppgradert til Microsoft .NET Framework 4.6 på datamaskinen. Når du bruker et program som bruker Windows Communication Framework(WCF) til å sende XML-SOAP-meldinger, kan det ta litt lengre tid å kodingen. I noen tilfeller kan dette påvirke hastigheten som et serverprogram kan behandle forespørsler.
Årsak
Dette problemet oppstår på grunn av en ny åpnes (JIT) kompilator som heter RyuJIT. Dette kompilatoren bruker ulike optimaliseringer enn eldre JIT64 kompilatoren. En metode på en varm kodebane for koding av strengene iXmlDictionaryWriter ikke er optimalisert for den nye JIT-kompilatoren og genererte opprinnelige instruksjonene tregere og kodingen tar lenger tid. Når en SOAP-meldingen inneholder et stort antall strenger som skal kodes, tregere koden brukes oftere og kan påvirke tiden koding.
Løsning
Hvis du vil omgå dette problemet, kan du konfigurere programmet til å deaktivere bruken av "ngen" for System.Runtime.Serialization.dll-samlingen og bruke den eldre JIT-motoren. Hvis du vil gjøre dette, bruker du én av følgende metoder:
  • Angi følgende miljøvariabler:

    COMPLUS_useLegacyJit = 1
    COMPLUS_DisableNativeImageLoadList=system.Runtime.serialization
  • Opprette en av de følgende undernøklene i registret:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\. NETFramework

    Legg deretter til følgende verdier:
    • Navn: useLegacyJit
      Type: REG_WORD
      Verdi: 1
    • Navn: DisableNativeImageLoadList
      Type: REG_SZ
      Verdi: System.Runtime.Serialization
  • Legg til følgende tekst i <app>. exe.config fil. Hvis de ikke allerede finnes, oppretter du de angitte delene.</app>
    <configuration>         <runtime>              <useLegacyJit enabled="1">             <disableNativeImageLoad>                 <assemblyIdentity name="System.Runtime.Serialization" />             </disableNativeImageLoad>          </runtime>     </configuration>


Hvis du vil ha mer informasjon om kjente problemer i .NET Framework 4.6, se Kjente problemer for .NET Framework 4.6.
Mer informasjon
Hvis du vil ha mer informasjon om versjonskontroll endringene produktet og innvirkningene i .NET Framework 4.6, seProgramkompatibilitet i .NET Framework 4.6.

Advarsel: Denne artikkelen er autooversatt

Egenskaper

Artikkel-ID: 3076436 – Forrige gjennomgang: 07/22/2015 19:36:00 – Revisjon: 1.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbexpertiseadvanced kbtshoot kbmt KB3076436 KbMtno
Tilbakemelding