Objawy
Założono, że przeprowadzono aktualizację do programu Microsoft.NET Framework 4.6 na komputerze. Użyj aplikacji, która używa Windows Communication RAM (WCF) do wysyłania wiadomości XML protokołu SOAP, kodowanie może trwać nieco dłużej. W niektórych przypadkach to może wpłynąć na szybkość, przy której aplikacja serwera może przetwarzać żądania.
Przyczyna
Ten problem występuje z powodu nowy kompilator just in Time (JIT) o nazwie RyuJIT. To kompilator używa różne opcje optymalizacji niż starsze kompilatora JIT64. Metoda na ścieżce kodu gorący kodowania ciągów w XmlDictionaryWriter nie jest zoptymalizowana dla kompilator JIT i generowane instrukcje macierzystego działają wolniej i kodowanie trwa dłużej. Gdy wiadomości SOAP zawiera dużą liczbę ciągów, które mają być zakodowane, ten kod wolniej jest częściej używany i może mieć wpływ na czas kodowania.
Rozwiązanie
Aby obejść ten problem, skonfiguruj aplikację, aby wyłączyć używanie ngen dla zestawu System.Runtime.Serialization.dll i używać starszej wersji aparatu JIT. Aby to zrobić, użyj jednej z następujących metod:
-
Ustaw następujące zmienne środowiskowe:
COMPLUS_useLegacyJit=1
COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization -
W rejestrze należy utworzyć jeden z następujących podkluczy:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
Następnie należy dodać następujące wartości:-
Nazwa klucza: useLegacyJit
Typ: REG_WORD
Wartości: 1 -
Nazwa klucza: DisableNativeImageLoadList
Typ: REG_SZ
Wartość: System.Runtime.Serialization
-
-
Dodaj następujący tekst do < Aplikacja >. exe.config pliku. Tworzenie sekcji wskazane, jeśli jeszcze nie istnieje.<configuration> <runtime>
<useLegacyJit enabled="1">
<disableNativeImageLoad>
<assemblyIdentity name="System.Runtime.Serialization" />
</disableNativeImageLoad>
</runtime>
</configuration>
Aby uzyskać więcej informacji o znanych problemach 4.6.NET Framework Zobacz znane problemy 4.6.NET Framework.
Więcej informacji
Aby uzyskać więcej informacji na temat zmiany wersji produktu i ich skutków w ppkt 4.6.NET Framework Zobacz Zgodność aplikacji.NET Framework 4.6.