Simptome
Să presupunem că ați făcut upgrade la Microsoft .NET Framework 4.6 pe computer. Când utilizați o aplicație care utilizează Windows Communication Framework (WCF) pentru a trimite mesaje XML SOAP, codificarea poate dura mai ușor. În unele cazuri, aceasta poate afecta rata la care o aplicație de server poate procesa cereri.
Cauza
Această problemă se produce din cauza un compilator Just-In-Time (JIT) nou, denumit RyuJIT. Această compilator utilizează diferite optimizări decât compilator JIT64 moștenite. O metodă de pe o cale rapidă cod pentru codificarea șiruri în XmlDictionaryWriter nu este optimizat pentru compilatorul JIT noi și instrucțiunile native generat execută mai lent și codificarea durează mai. Atunci când un mesaj SOAP conține un număr mare de șiruri pentru a fi codificat, acest cod mai lent este utilizat mai frecvent și poate afecta timpul codificare.
Rezolvare
Pentru a rezolva această problemă, configurați aplicația pentru a dezactiva utilizarea ngen pentru asamblarea System.Runtime.Serialization.dll și se utilizează motorul JIT moștenite. Pentru aceasta, utilizați una dintre următoarele metode:
-
Setați variabilele de mediu următoarele:
COMPLUS_useLegacyJit=1
COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization -
În registry, creați oricare dintre următoarele subchei:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
Apoi, adăugați următoarele valori:-
Nume de cheie: useLegacyJit
Tip: REG_WORD
Valoare: 1 -
Nume de cheie: DisableNativeImageLoadList
Tip: REG_SZ
Valoare: System.Runtime.Serialization
-
-
Adăugați următorul text în aplicația < >. exe.config fișier. Creați secțiunile indicate dacă nu există deja.<configuration> <runtime>
<useLegacyJit enabled="1">
<disableNativeImageLoad>
<assemblyIdentity name="System.Runtime.Serialization" />
</disableNativeImageLoad>
</runtime>
</configuration>
Pentru mai multe informații despre problemele cunoscute în .NET Framework 4.6, consultați probleme pentru .NET Framework 4.6 cunoscute.
Mai multe informații
Pentru mai multe informații despre produs versioning modificările și efectele lor în .NET Framework 4.6, consultaţi Compatibilitatea aplicațiilor în .NET Framework 4.6.