3

一些规格:

  • IIS 7.5
  • ASP.Net MVC3

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

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

我想让 URL 分别是这样的:

  1. http://域名/
  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/为用户提取它。

再说一次,我对服务器的东西不是很了解,这对我来说并不有趣,所以我为什么要问你们!

谢谢!

4

2 回答 2

3

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

一种可能的选择是,如果您可以将主页设置在站点的根目录而不是 asp.net 应用程序。如果你做不到,你就会被困在这上面。

于 2012-05-09T17:35:06.247 回答
0

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

于 2012-05-09T17:38:03.660 回答