當您使用 WCF 在.NET Framework 4.6 中傳送 XML SOAP 訊息時的效能問題

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:3076436
徵狀
假設您已經升級到 Microsoft.NET Framework 表 4.6] 在您的電腦上。當您使用的應用程式,使用 Windows 通訊 Framework(WCF) 傳送 XML SOAP 訊息時,編碼方式可能要花久一點。在某些情況下,這可能會影響伺服器應用程式可以處理要求的速率。
發生的原因
之所以發生這個問題,是因為新的 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
  • 將下列文字新增到<app>。.exe.config 檔案。建立指定的區段,如果已經存在。</app>
    <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] 的應用程式相容性.

警告:本文為自動翻譯

內容

文章識別碼:3076436 - 最後檢閱時間:07/20/2015 14:17:00 - 修訂: 1.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbexpertiseadvanced kbtshoot kbmt KB3076436 KbMtzh
意見反應