一个IIS站点,两个具有不同.NET版本的应用程序

时间:2013-09-13 14:22:51

标签: asp.net asp.net-mvc iis

我将旧网站移植到MVC 4中,到目前为止我已将其工作。但是,我们使用的第三方论坛也没有改变。在IIS 7中,我为论坛创建了一个新的应用程序,它还有自己的应用程序池(MVC是.NET4,论坛是.NET 2)。

应用程序位于服务器上的不同物理目录中,这就是使用ForumApp作为子应用程序的IIS目录结构:

\ RootMVCSite \
\ RootMVCSite \ BIN
\ RootMVCSite \ [OTHERMVCFILESANDFOLDERS]
\ RootMVCSite \ web.config中
\ RootMVCSite \ ForumApp \
\ RootMVCSite \ ForumApp \ BIN
\ RootMVCSite \ ForumApp \ [OTHERFORUMAPPFILESANDFOLDERS]
\ RootMVCSite \ ForumApp \ web.config中

然而,当我去论坛时,我收到以下错误:

Parser Error Message: Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.

Line 20:   <system.web>
Line 21:     <compilation targetFramework="4.0" />

令人困惑的部分是它在web.config中查找根MVC站点而不是子应用程序指向的论坛站点。我需要在IIS或web.config中做什么来解决这个问题?有没有办法阻止子应用查看根网站的web.config?

2 个答案:

答案 0 :(得分:1)

我明白了。通过使用location标记包装违规配置部分,任何子应用程序都会忽略这些设置。

<location path="." inheritInChildApplications="false">
  <system.web>
    <compilation targetFramework="4.0" />
  </system.web>
  ...
</location>

如果有什么我应该对这个解决方案保持警惕,请加入并提出任何改进或建议!

答案 1 :(得分:0)

在IIS中检查该站点的应用程序池,并确保它以.NET Framework 4.0为目标。默认情况下,新的应用程序池将设置为.NET 2.0。