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=1COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization
-
V registru můžete vytvořte buď následující podklíče:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameworkHKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFrameworkPoté přidejte následující hodnoty:
-
Název klíče: useLegacyJitTyp: REG_WORDHodnota: 1
-
Název klíče: DisableNativeImageLoadListTyp: REG_SZHodnota: 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.