IIS与asp.net3.5的问题,在 IIS 里面为什么看不到 ASP.NET 3.5 的选项
這幾天在玩 .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 就是了!
问:为什么Framework 3.5为什么在IIS的ASP.NET选项找不到?
答:3.0 3.5中都是额外的功能的,但他们的编译后的代码还是2.0的,也就是类似于文章中有Lambda与过去使用的delegate的方式所编译成的目标代码都是基于2.0的,因为.NET框架是基于静态编译的代码,因此用2.0即可解释IL了……
Keywords: IIS IIS5.1 IIS6 ASP.NET 3.5
from: http://blog.163.com/llf_046/blog/static/52737119200922332133232/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY