Příznaky
Předpokládejme, že jste provedli upgrade na Microsoft rozhraní.NET Framework 4.6 ve vašem počítači. Při použití aplikace, která používá Windows Communication Framework (WCF) k odesílání zpráv XML SOAP kódování může trvat trochu déle. V některých případech může ovlivnit rychlost, jakou server aplikace může zpracovávat žádosti.
Příčina
K tomuto problému dochází z důvodu nový kompilátor JIT (JIT), který se nazývá RyuJIT. Tento kompilátor používá různé optimalizace než starší verze kompilátoru JIT64. Metoda na cestě hot kódu pro kódování řetězců v XmlDictionaryWriter není optimalizován pro nový kompilátor JIT a generované nativní instrukce pomaleji a kódování trvá déle. Zprávy SOAP obsahuje velký počet řetězců, které mají být kódovány, tento pomalejší kód se používá častěji a může ovlivnit čas kódování.
Řešení
Chcete-li tento problém vyřešit, nakonfigurujte aplikaci zakázat užívání ngen System.Runtime.Serialization.dll sestavení a použití starší verze modulu JIT. Chcete-li to provést, použijte jednu z následujících metod:
-
Nastavení následujících proměnných prostředí:
COMPLUS_useLegacyJit=1
COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization -
V registru můžete vytvořte buď následující podklíče:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
Poté přidejte následující hodnoty:-
Název klíče: useLegacyJit
Typ: REG_WORD
Hodnota: 1 -
Název klíče: DisableNativeImageLoadList
Typ: REG_SZ
Hodnota: System.Runtime.Serialization
-
-
Přidat následující text < aplikace >. exe.config souboru. Uvedené oddíly vytvořte, pokud již neexistují.<configuration> <runtime>
<useLegacyJit enabled="1">
<disableNativeImageLoad>
<assemblyIdentity name="System.Runtime.Serialization" />
</disableNativeImageLoad>
</runtime>
</configuration>
Další informace o známých problémech s 4.6 rozhraní.NET Framework naleznete v tématu Známé problémy pro 4.6 rozhraní.NET Framework.
Další informace
Další informace o změny verzí produktu a jejich účinky v 4.6 rozhraní.NET Framework naleznete v tématu Kompatibilita aplikací rozhraní.NET Framework 4.6.