COMPILATION debug=false 正在殺死我的 ASP.NET 站點
我有一個大型(對我而言)ASP.NET(4.5 Framework)應用程序,在 VS2012 中開發和發佈時執行良好。
我已經從 VS2012 升級到 VS2013,我打開解決方案沒有問題,它在本地執行良好(在 IIS Express 上)。
我不知道這是否是一個紅鯡魚,但我第一次使用 NuGet 更新 AJAX 控制項工具包(及其依賴項),它似乎已經奏效。
當我將站點發布(文件系統發布)到我們的 Web 伺服器(Windows Server 2012 中的 IIS 8)時,它載入正常,直到我更改
<compilation defaultLanguage="vb" debug="true" targetFramework="4.5">為debug="false".當我這樣做時,該站點像豬一樣執行,有時頁面甚至不載入,並且其 IIS 工作程序使 CPU 達到峰值並保持不變,以百分比增長,直到它基本上消耗了所有 CPU。
編輯:這發生在伺服器和我的電腦上(IIS Express)
該測試站點的 AppPool 與我們的實時站點的 AppPool 使用相同的設置執行。注意:
- 啟用 32 位應用程序:True
- .NET 框架版本:v4.0
- 託管管道模式:集成
我希望您需要更多資訊,但老實說,我不知道從哪裡開始,我不想被不必要的細節淹沒。
先感謝您
編輯:我真的應該提到這一點:
該網站是在發布模式下發布期間預編譯的。在過去發布之前,我從來不需要在我的開發環境中更改為 debug=false。
我的解決方案中的每個項目都得到了這個:
(0,0): warning : The following assembly has dependencies on a version of the .NET Framework that is higher than the target and might not load correctly during runtime causing a failure: [projectname], Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. The dependencies are: Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a. You should either ensure that the dependent assembly is correct for the target framework, or ensure that the target framework you are addressing is that of the dependent assembly.**編輯:**看來我繼承的這個解決方案是一個網站而不是應用程序。我不知道這是否會起作用。
我最終不得不就此打電話給微軟。他們使用ProdDump和LogMan來分析正在發生的事情。不到 24 小時後,我回复說:
“執行緒 19 似乎嚴重拖累了 CPU。堆棧頂部表明 AjaxMin 正在嘗試在 Dictionary 對像上執行 FindEntry,這是從 AjaxControlToolKit 觸發的,特別是似乎在任何一個上都定義了“CombineScripts”屬性母版頁或者OrderDetails.aspx的設計頁中。基本上這結合了所有的JS文件並縮小了它們。
一個快速的測試是從 AjaxControlToolKit 中禁用 CombineScript 的邏輯,看看這是否會提高性能”
Google告訴我CombineScripts是 ToolkitScriptManager 的一個屬性,因為AJAX 一直是一個嫌疑犯(沒有真正的充分理由,只是一種預感)我跳上了它。
果然,將我對ToolkitScriptManager的引用更改為包含CombineScripts=“false”完全解決了問題**!
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" CombineScripts="false" ScriptMode="Release" />相關文章:我不是唯一一個:https ://www.google.ca/#q=ToolkitScriptManager+combinescripts+problem
兩個有用的文章: http ://forums.asp.net/t/1696523.aspx http://ajaxcontroltoolkit.codeplex.com/workitem/27558