【问题标题】:Problems hosting multiple ASP.Net MVC3 applications in an IIS7.5 website在 IIS7.5 网站中托管多个 ASP.Net MVC3 应用程序的问题
【发布时间】:2012-05-09 17:24:19
【问题描述】:

一些规格:

  • IIS 7.5
  • ASP.Net MVC3

我想托管三个 MVC3 应用程序:

  1. 项目A
  2. 项目 B
  3. 项目 C

我想让 URL 分别是这样的:

  1. http://domain/
  2. http://domain/ProjectB
  3. http://domain/ProjectC

所以在 IIS 中,我有默认网站,它指向 ProjectA 的文件夹。然后我向其中添加了两个应用程序,一个指向 ProjectB,一个指向 ProjectC,以及它们各自在硬盘上的文件夹。我将站点存储在 C:\sites 中。每个项目在应用程序文件所在的 C:\sites 中都有一个文件夹。如您所见,这些站点根本没有嵌套在服务器上。

当我加载http://domain/ProjectB 时,它正在尝试从 ProjectA web.config 加载配置值。显然这不是我想要的,而且我在服务器配置方面也不是那么出色。我通过将大部分 ProjectA web.config 包装在一个位置标签中来让它工作,如下所示:

<location path="." inheritInChildApplications="false" >
    <!-- Lots of web.config stuff for ProjectA -->
</location>

我不是这个的粉丝,感觉不对。对我来说,我的 IIS 站点中的嵌套应用程序似乎甚至不应该知道父站点。我究竟做错了什么?我敢肯定这是非常小的东西。我本来可以让 ProjectA 成为一个应用程序,但我不希望它上面有别名,因为我希望 http://domain/ 为用户提取它。

再说一次,我对服务器的东西不是很了解,这对我来说并不好玩,所以我问你们!

谢谢!

【问题讨论】:

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


    【解决方案1】:

    这就是它的工作原理。默认情况下,asp.net 应用程序继承其父 web.config,您需要在较低的 web.config 中覆盖这些值,或者像上面那样将其包装在 inheritInChildApplications="false" 属性中。

    一个可能的选择是,如果您可以将您的主页设为站点的根目录,而不是 asp.net 应用程序。如果你做不到,那么你就被困在了这里。

    【讨论】:

      【解决方案2】:

      在 goDaddy 上,您可以使用“设置应用程序根”创建 iis 虚拟目录,然后使每个具有“设置应用程序根”设置的控制器充当根目录(就像您想要的那样)。用户没有注意到任何东西。所以你可以看看你是否有这个选项?

      【讨论】:

      • 在 IIS 中创建应用程序就是这样做的,它仍然继承父级。
      猜你喜欢
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多