如何在IIS7上将子应用程序与主站点隔离开来

时间:2010-04-20 17:04:11

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

塞纳里奥:

我在Win Server 2008网络版上运行IIS7

我在网站(主应用程序)的路线上有一个MVC应用程序

网站HOST是domain.com

我创建了一个带有ASP.Net应用程序(子应用程序)的虚拟应用程序/测试应用程序

问题:

当我导航到http://domain.com主应用程序按预期工作时,但当我导航到http://domain.com/testapp时,子应用程序似乎正在运行但处理主应用程序web.config。

我遇到的一些错误涉及到只有主应用所需的dll - 这可以通过将dll复制到子app bin文件夹中来解决,但不是理想的解决方案。

问题:

我认为这不是MVC / ASP.Net问题,而是ISS7问题。如何配置IIS7以使这两个应用程序不会相互干扰?

2 个答案:

答案 0 :(得分:2)

由于web.config文件的继承,此问题是设计使然。你有几个解决方案:

  1. 将站点根目录中的站点元素移动到与其他应用程序并排放置的应用程序子文件夹中,并尽可能多地删除父级的web.config。
  2. 将父web.config中的所有元素复制到所需的子web.config中,并使用location元素阻止子进程中的继承:
  3. < location path="." inheritInChildApplications="false" >
        < system.web >
        ...
        </ system.web >
    </ location >
    

答案 1 :(得分:0)

当我在IIS7上运行的ASP MVC 4应用程序中添加自定义模块时,我遇到了类似的问题。 我通过简单地删除和添加模块找到了解决方案:

 <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="GlobalizationModule"/>
      <add name="GlobalizationModule" type="GlobalizationHttpModule, MyWebSite"/>
    </modules>
  </system.webServer>

这是这个问题的具体解决方案,希望有所帮助。

伊多。