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.

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions pour vos commentaires.

×