Symptome
Angenommen, Sie haben auf Ihrem Computer ein Upgrade auf Microsoft .NET Framework 4.6 durchgeführt. Wenn Sie eine Anwendung verwenden, die Windows Communication Framework (WCF) zum Senden von XML-SOAP-Nachrichten verwendet, kann die Codierung etwas länger dauern. In einigen Fällen kann sich dies auf die Geschwindigkeit auswirken, mit der eine Serveranwendung Anforderungen verarbeiten kann.
Ursache
Dieses Problem tritt aufgrund eines neuen JIT-Compilers (Just-In-Time) mit dem Namen RyuJIT auf. Dieser Compiler verwendet andere Optimierungen als der ältere JIT64-Compiler. Eine Methode auf einem Hot-Code-Pfad zum Codieren von Zeichenfolgen im XmlDictionaryWriter ist nicht für den neuen JIT-Compiler optimiert, und die generierten nativen Anweisungen laufen langsamer und die Codierung dauert länger. Wenn eine SOAP-Nachricht eine große Anzahl von Zeichenfolgen enthält, die codiert werden müssen, wird dieser langsamere Code häufiger verwendet und kann sich auf die Codierungszeit auswirken.
Lösung
Um dieses Problem zu umgehen, konfigurieren Sie die Anwendung so, dass die Verwendung von ngen für die System.Runtime.Serialization.dll Assembly deaktiviert und das ältere JIT-Modul verwendet wird. Wenden Sie hierzu eine der folgenden Methoden an:
Legen Sie die folgenden Umgebungsvariablen fest:
COMPLUS_useLegacyJit=1
COMPLUS_DisableNativeImageLoadList=System.Runtime.SerializationErstellen Sie in der Registrierung einen der folgenden Unterschlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFrameworkFügen Sie dann die folgenden Werte hinzu:
- Schlüsselname: useLegacyJit
Typ: REG_WORD
Wert: 1 - Schlüsselname: DisableNativeImageLoadList
Type: REG_SZ
Wert: System.Runtime.Serialization
- Schlüsselname: useLegacyJit
Fügen Sie der <Datei app>.exe.config den folgenden Text hinzu. Erstellen Sie die angegebenen Abschnitte, falls sie noch nicht vorhanden sind.<Konfiguration>
<Laufzeit>
<useLegacyJit enabled="1">
<disableNativeImageLoad>
<assemblyIdentity name="System.Runtime.Serialization" />
</disableNativeImageLoad>
</runtime>
</Konfiguration>
Weitere Informationen zu bekannten Problemen in .NET Framework 4.6 finden Sie unter Bekannte Probleme mit .NET Framework 4.6 .
Weitere Informationen
Weitere Informationen zu den Änderungen bei der Produktversionsverwaltung und deren Auswirkungen in .NET Framework 4.6 finden Sie unter Anwendungskompatibilität in .NET Framework 4.6.