2017-06-19 41 views
0

我在我的web應用程序中使用了XslCompiledTransformer。不幸的是,最新的.NET更新4.7版不再適用。 (我有this issue如何強制IIS使用.NET 4.6或4.5.x或更低版本?

我希望微軟快速提出解決方案,但同時我想強制我的應用程序使用.NET 4.6運行。

這是我已經嘗試過:

  • supportedRuntime標記在web.config文件
  • 設置目標框架的web應用項目到.NET 4.6/4.5

謝謝你爲你的答案!

+2

4.7是4.x行的*就地更新*。你必須從服務器上卸載4.7才能完成這項工作。 –

+0

不幸的是,這不是一種選擇,因爲該應用程序已推廣到很多客戶。我們不能去卸載.NET Framework 4.7的每一個。 –

+0

我現在正在爲我們的軟件創建一個更新,以使用'XslTransformer'而不是'XslCompiledTransformer'作爲解決方法,但這當然對性能不利,因此不是優選的 –

回答

2

您正在運行4.7 jit中的尾部遞歸消除錯誤。您可以通過禁用優化來解決此問題:將環境變量COMPlus_TailCallLoopOpt設置爲0,或者在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework或HKEY_CURRENT_USER \ SOFTWARE \ Microsoft.NETFramework下創建一個名爲TailCallLoopOpt的DWORD值,並將其設置爲0.

+0

*哪一個*會設置這個?它是一個編譯器選項嗎?要添加到'web.config'的設置?註冊表設置?還有別的嗎? –

+0

這是一個環境變量。您還可以在註冊表中將其設置爲0,作爲位於HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework或HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ .NETFramework下的名爲TailCallLoopOpt的DWORD值。 –

+1

**編輯**您的答案。包含這些信息。包含更多信息的鏈接(如果存在)。就目前而言,你自己的答案本身並不能幫助那些不知道你正在談論的內容的人。 –

相關問題