web.config從.net framework3.5向4.0遷移注意事項


web.config從.net
framework3.5向4.0遷移注意事項
 


2012-04-25 11:53:51|  分類: 2012.net之路
|  標簽:.net 
|字號 訂閱





web.config從.net framework3.5向4.0遷移注意事項
原文:http://blog.sina.com.cn/s/blog_56a68d5501010p2b.html


參考:http://www.cnblogs.com/pandora/archive/2010/03/12/asp_net_4_introduction.html
請仔細閱讀此文↑:
簡潔的Web.Config文件


在VS2008SP1中,默認的web.config文件代碼有139行,而在ASP.NET4.0中,web.config
文件只有6行:


image


原理很簡單,ASP.NET團隊對web.config文件進行了重構,將通用的設置寫進默認的機器級別的web.config中。只剩下兩個需要頻繁變化的設置項。



debug的值在Web Application 項目中會被默認設置為true,在Web
Site 項目中會被默認設置為false
targetFramework的值可以設置為:4.0,3.5,3.0和2.0。這個選項會被IIS識別並自動賦予ASP.NET程序池相應的Framework版本。

Intellisense在舊版的web.config中會不起作用。可以通過刪除原web.config中configuration的namespace(xmlns)屬性就可以了。



今天花費了多半天的時間使Spacebuilder同時兼容.net
framework3.5和4.0。由於以前了解過(參見:asp.net
4.0來了
),在asp.net4.0中對web.config作了很多簡化,因此把注意力聚集到了dll的版本號及簽名和HttpHandler和HttpModule上,分別作了以下處理:


1、去除所有與.net
framework3.5相關的dll版本號及簽名,例如:“System.Web.Routing, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=31BF3856AD364E35” 修改 為“System.Web.Routing”;


2、去除
configuration/configSections/sectionGroup[name="system.web.extensions"]
的配置節點;


3、僅保留:
<compilation debug="true">

<assemblies>
<add
assembly="System.Web.Abstractions"/>
<add
assembly="System.Web.Routing"/>
<add
assembly="System.Web.Mvc"/>

</assemblies>
</compilation>


4、另外由於ASP.NET
4.0請求驗證模式發生變化,因此僅在<httpRuntime/>設置 validateRequest="false"已經不起作用,需要
requestValidationMode="2.0",即<httpRuntime requestValidationMode="2.0"
/>
5、去除httpHandlers、httpModules以及system.webServer/modules、system.webServer/handlers中所有與framework3.5自帶的配置;


至此,web.config修改完畢。



除了web.config以外還發現了一個.net
framework4.0與以前版本的兼容性問題:


在以前版本中System.IO.File.Exists 可以判斷“d:\root\a.txt\”但是在
Framework4.0中必須使用規范的“d:\root\a.txt”,否則一直返回false。該問題花費了大量時間。


留個記號,以后備查。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM