原以為只要在Visual Studio 2012中將每個項目的Target framework設定為.NET Framewor 4.5進行編譯,然後在web.config中設定compilation的targetFramework為4.5,就升級到了ASP.NET 4.5。
<compilation targetFramework="4.5"/>
後來發現這樣是不夠的,還需要在web.config中設定httpRuntime的targetFramework。
<httpRuntime targetFramework="4.5"/>
這樣才算真正升級至ASP.NET 4.5。
升級之後有兩個地方需要特別注意:
1. web.config中machineKey的設定
ASP.NET 4.5的預設設定是:
<machineKey compatibilityMode="Framework45" />
ASP.NET 4.5對錶單驗證的加/解密演算法進行了改進,如果不是同時將所有ASP.NET應用程式升級至ASP.NET 4.5,為了保持表單驗證的相容性,需要修改compatibilityMode的設定。
<machineKey compatibilityMode="Framework20SP1"/>
<machineKey compatibilityMode="Framework20SP2"/>
2. 對WebForms表單驗證控制項的影響
如果用到了<asp:RequiredFieldValidator/>這樣的驗證控制項,會出現下面錯誤:
WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).
解決方案:在web.config的<appSettings>中添加如下的設定
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
您在升級至ASP.NET 4.5中發現什麼需要注意的地方,期待您的分享!
參考資料:
All about <httpRuntime targetFramework>
Cryptographic Improvements in ASP.NET 4.5