狀況

假設您已經在您的電腦上升級到 Microsoft.NET Framework 4.6。當您使用的應用程式傳送 XML SOAP 訊息中使用 Windows 通訊架構 (WCF) 時,編碼方式可能要花久一點。在某些情況下,這可能會影響伺服器應用程式可以處理要求的速率。

原因

之所以發生這個問題,是因為新的 Just-In-Time (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] 的應用程式相容性

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×