我可以在.NET3.5网站中运行.NET4应用程序吗?

我有一个非常庞大和复杂的Web应用程序运行.NET 3.5,一些经典的ASP页面和VBScript组件引发良好的措施。 该网站在IIS7上运行,并且是一个根网站。

理想情况下,我想在运行.NET 4的这个网站下面有一个子应用程序来部署新的组件。 但是,这给我带来了困难,并显示以下错误:

如果您正在编译.NET Framework 4.0或更高版本,则提供程序选项中的“compilerVersion”属性的值必须为“v4.0”或更高版本。 要为.NET Framework 3.5或更低版本编译此Web应用程序,请从Web.config文件的元素中删除“targetFramework”属性。

这是可能 ,还是应该放弃,find另一种方式?

有可能的。

您当然需要在Web服务器上安装两个框架; 那么您将需要将站点的根configuration为使用3.5框架运行,以及使用4.0运行您的子应用程序所在的文件夹(或虚拟目录)。 您至less需要两个应用程序池,一个用于3.5,另一个用于4.0; 你可以使用默认值(在使用IIS注册框架时自动创build)或创build自定义值,这取决于服务器的configuration。

如果子应用程序与您的主站点无关,这应该是足够的; 如果他们需要“交谈”,事情会变得有些棘手,因为主站点和子应用程序实际上将运行在两个完全不同的运行环境中,即使它们驻留在相同的网站结构中。

是的,您必须将此子应用程序configuration为使用不同的应用程序池运行。 您可以创build另一个与.NET 4一起运行。

这些文章应该有助于具体如何做到这一点:

您可能(可能应该)也将整个站点升级到.NET 4.大多数情况下都应该向后兼容。

我通过从[compilation]节点中删除[targetFramework="4.0"]来实现它。

VS 2010,MVC 4 – > .net 4.0,IIS 5。

仍然有路由问题,但至less默认页面的作品。