原文 http://www.cnblogs.com/dudu/archive/2013/05/20/3087791.html
原以为只要在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