让 .NET Framework 2.0 与 .NET Framework 4.0 在同一 IIS 站点中共存

作者:vkvi 来源:ITPOW(原创) 日期:2020-3-27

IIS 中,某站点使用的是 .NET Framework 3.5 SP1,那么其应用程序池的 .NET Framework 版本就是 v2.0。

其下有另一应用程序,使用的是 .NET Framework 4.6.2,那么其应用程序池的 .NET Framework 版本就是 v4.0。

配置好之后访问站点根目录无问题,访问站点下的应用程序报错:

HTTP 错误 500.19 - 无法访问请求的页面,因为该页的相关配置数据无效。
HRESULT: 0x800700b7

原因是访问应用程序时,IIS 首先会去读取站点根目录的 web.config。而站点根目录的 web.config 问题就是出在 configSections 这个节,这个节本身我也没用,将其注释,再访问应用程序根目录,出现了另外的错误:

若要针对 .NET Framework 4.0 或更高版本进行编译,则提供程序选项中“compilerVersion”特性的值必须为“v4.0”或更高版本。若要针对 .NET Framework 3.5 或更低版本编译此 Web 应用程序,则请从 Web.config 文件的 元素中移除 targetFramework 特性。

于是将应用程序的 web.config 的 <compilation debug="false" targetFramework="4.6.2"/> 改为:<compilation debug="false" />

总结:

1、注释站点根目录的 web.config 的 configSections。

2、去除应用程序的 web.config 的 targetFramework。

相关文章