Проблем с производителността при използване на WCF за XML SOAP съобщения в .NET Framework 4.6

Симптоми

Да предположим, че сте извършили надстройка до Microsoft .NET Framework 4.6 на вашия компютър. Когато използвате приложение, което използва Windows комуникация рамка (WCF) да изпраща съобщения за XML SOAP, кодиране може да отнеме малко повече време. В някои случаи това може да засегне скоростта която сървърно приложение може да обработва заявки.

Причина

Този проблем възниква, тъй като нова при поискване (JIT) компилатор, който се нарича RyuJIT. Този компилатор използва различен оптимизации от стари JIT64 компилатор. Метод на горещо код път за кодиране на низове в XmlDictionaryWriter не е оптимизиран за новата JIT компилация генерирани основни инструкции работят по-бавно и кодиране отнема повече време. Когато SOAP съобщение съдържа голям брой низове да бъдат кодирани, бавно този код се използва по-често и може да засегне кодиране време.

Решение

За да заобиколите този проблем, конфигурирайте приложението да забраните използването на ngen за събрание на System.Runtime.Serialization.dll и сайта на стари JIT. За тази цел използвайте един от следните методи:

  • Задайте следните променливи:

    COMPLUS_useLegacyJit=1
    COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization

  • В системния регистър създаване на един от следните подключове:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework

    След това добавете следните стойности:

    • Име на ключ: useLegacyJit
      Тип: REG_WORD
      Стойност: 1

    • Име на ключ: DisableNativeImageLoadList
      Тип: REG_SZ
      Стойност: System.Runtime.Serialization

  • Добавете следния текст към < приложението >. exe.config файл. Създайте посочените раздели, ако те не са налични.<configuration> <runtime>
    <useLegacyJit enabled="1">
    <disableNativeImageLoad>
    <assemblyIdentity name="System.Runtime.Serialization" />
    </disableNativeImageLoad>
    </runtime>
    </configuration>



За повече информация относно известните проблеми в .NET Framework 4.6 вижте известни проблеми с .NET Framework 4.6.

Допълнителна информация

За повече информация относно продукта версии промени и тяхното въздействие в .NET Framework 4.6 вижте Съвместимостта на приложенията в .NET Framework 4.6.

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×