使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设您已在您的计算机上升级到 Microsoft.NET Framework 4.6。使用 Windows 的通信框架 (WCF) 发送 XML SOAP 消息的应用程序使用时,可能需要稍长的编码。在某些情况下,这可能会影响服务器应用程序处理请求的速度。

原因

名为 RyuJIT 的新实时 (JIT) 编译器会出现此问题。此编译器使用不同于传统的 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 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×