Symptômes
Supposons que vous avez mis à niveau vers Microsoft.NET Framework 4.6 sur votre ordinateur. Lorsque vous utilisez une application qui utilise Windows Communication Framework (WCF) pour envoyer des messages SOAP XML, le codage peut prendre légèrement plus long. Dans certains cas, cela peut affecter la vitesse à laquelle une application serveur peut traiter les demandes.
Cause
Ce problème se produit en raison d’un nouveau compilateur juste à temps (JIT) nommé RyuJIT. Ce compilateur utilise différentes optimisations que le compilateur JIT64 hérité. Procédé pour le codage des chaînes dans le XmlDictionaryWriter sur un chemin d’accès du code à chaud n’est pas optimisé pour le nouveau compilateur JIT et les instructions natives générées s’exécutent plus lentement et le codage prend plus de temps. Lorsqu’un message SOAP contient un grand nombre de chaînes à coder, ce code plus lent est plus fréquemment utilisé et peut affecter le temps d’encodage.
Résolution
Pour contourner ce problème, configurez l’application pour désactiver l’utilisation de ngen pour l’assembly de System.Runtime.Serialization.dll et d’utiliser le moteur JIT hérité. Pour ce faire, utilisez une des méthodes suivantes :
-
Définissez les variables d’environnement suivantes :
COMPLUS_useLegacyJit=1
COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization -
Dans le Registre, vous pouvez créer une des sous-clés suivantes :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
Ensuite, ajoutez les valeurs suivantes :-
Nom de la clé : useLegacyJit
Type : REG_WORD
Valeur : 1 -
Nom de la clé : DisableNativeImageLoadList
Type : REG_SZ
Valeur : System.Runtime.Serialization
-
-
Ajoutez le texte suivant à l’élément < application >. exe.config fichier. Créer les sections indiquées si elles n’existent pas déjà.<configuration> <runtime>
<useLegacyJit enabled="1">
<disableNativeImageLoad>
<assemblyIdentity name="System.Runtime.Serialization" />
</disableNativeImageLoad>
</runtime>
</configuration>
Pour plus d’informations sur les problèmes connus dans la 4.6 du.NET Framework, consultez problèmes de la 4.6 de.NET Framework.
Plus d'informations
Pour plus d’informations sur les modifications de contrôle de version de produit et de leurs effets dans les 4.6 de.NET Framework, consultez Compatibilité des applications dans le 4.6 de.NET Framework.