本人現在正在研究VS2008,發現VS2008帶的Framework 3.5,於是我去IIS ASP.NET裡面看看是不是有那個選項.
發現沒有.於是乎就想到這是指令碼沒有映射.用以前註冊Framework 2.0的方法,發現找不到aspnet_regiis.exe
註冊了.上V3.5裡面發現最有可能的是一個叫VFServers.exe還差不多.用命令重新註冊還是不行.
我看見 添加刪除程式裡面 是 framework 3.5,怎麼他不能指令碼映射那?反正我一直不理解為什麼在IIS裡面怎麼
就沒有? 按照常理說:VS2003帶framework1.1,VS2005 帶framework2.0,VS2008 上次您在VS2008發布會(微軟18
層)說過不是帶framework3.0,3.0裡面有WCF,這次總應該是Framework3.5了吧? 疑惑中.相信很多人估計和我剛
才一樣疑惑.
最後在老趙的BLOG裡面,有個人(volnet(可以叫我大V) )解答了.真的感謝.
問:為什麼Framework 3.5為什麼在IIS的ASP.NET選項找不到?
答:答:3.0 3.5中都是額外的功能的,但他們的編譯後的代碼還是2.0的,也就是類似於文章中有Lambda與過去
使用的delegate的方式所編譯成的目標代碼都是基於2.0的,因為.NET架構是基於靜態編譯的代碼,因此用2.0
即可解釋IL了。
其他回答:
這幾天在研究 .Net 3.5,發現了一個疑問,就是在 IIS 裡面為什麼看不到 ASP.NET 3.5 的選項?且以前在 .NET 2.0 的時候有個 aspnet_regiis.exe 的執行檔 在.NET 3.5 也看不到!!
後來我才搞懂,原來 ASP.NET 3.5 只是使用 .Net Framework 3.5 的組件(assembly)而已!整個核心的架構還是建立在 .NET 2.0 之上,.NET Framework 的 API 都沒變,只是到了 .NET 3.5 很多 assembly 都重新寫過了,且執行的速度也比 .NET 2.0 的組件還快。
如果你用 Visual Studio 2008 開一個網站,你開啟 web.config 會發現在 <assemblies> 區段中出現了一堆 assembly 的定義,其版本都是 3.5.0.0
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
所以 ASP.NET 3.5 的程式要安裝在 IIS 上不需要特別指定 ASP.NET 3.5 的版本,繼續沿用 ASP.NET 2.0 的版本即可,但作業系統本身必須要先安裝 .Net Framework 3.5 runtime 就是了!