终于弄明白Framework 3.5为什么在IIS的ASP.NET选项找不到?
本人现在正在研究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 就是了!