1

根据问题,这就是我想要实现的目标:

  • 在 IIS (7) 中创建一个单独的网站节点来托管已部署的 ASP.NET 4 MVC(和 Web API)应用程序。我想要一个单独的网站节点,而不是在默认网站节点下的 IIS 中创建应用程序。这是为了对应用程序 web.config 拥有完全权限,并且如果将 Web.config 放在某个子文件夹中,则不会受到限制。

  • 假设我正在开发 IIS 服务器上进行部署。通常,网站节点将位于类似于some.IP.addr.ess/. 我希望网站位于类似some.IP.addr.ess/some/path/. 这是为了让 Web 应用程序在部署到子文件夹时也可以正常工作。这也是因为我想在同一台服务器上部署另一个 Web 应用程序,并且可以从some.IP.addr.ess/another/path/.

为了澄清我混乱的要求:)我想要:

  1. 一个在服务器上运行的 IIS Web 服务器实例,具有一个 IP,可能还有一个域名。
  2. 在 IIS 实例内部,有几个网站节点,每个应用程序一个。应用程序可以在 ASP.NET MVC/Web API 上运行。另一个应用程序可能正在 PHP 上运行。另一个可能是静态 HTML 页面。在这里,我说应用程序是一个通用术语,不一定与IIS Application相关。
  3. 如果服务器有一个 IP 地址,比如说123.123.123.123,每个应用程序都应该可以通过一个 URL 访问,比如123.123.123.123/MvcApp1,123.123.123.123/PhpApp2等等。

我在网上搜索过,但可能我没有使用正确的术语:我总是有关于如何在默认节点或虚拟目录等中创建应用程序的文章。然后我发现这个 ASP.NET 论坛帖子似乎说我不能。** 谢谢大家

编辑- 转到问题的根源,如下所示:
我想引用具有不同 URL 路径的不同应用程序,例如 IPaddress/Mvc1、IPaddress/Php2 等。
所有这些都是开发服务器所需要的,然后是测试和登台,而不是生产。因此,首先不会很快需要一个域。
我可以在子文件夹、虚拟目录或应用程序中使用应用程序和 Web.config,只要这不会妨碍彼此正常工作。例如,一个 ASP.NET 应用程序,旁边是一个具有自己路由的 ASP.NET MVC,一个 ASP.NET Web API 和一个 PHP。

4

2 回答 2

1

我想我理解你的意思,但是,我认为你对事情有一些基本的误解。

首先,是的,您可以在服务器上拥有多个网站节点。这些节点都可以响应相同的 IP 地址,但是,这仅在使用 HTTP 1.1 主机名时才有效,这意味着您必须使用不同的域名(主机名)引用每个站点。因此,您有:

domain1.com/mvc1 domain2.com/php1

domain1.com 和 domain2.com 都解析为 123.123.123.123,但 IIS 将查看主机名字段并确定它需要访问的站点。

如果您输入 IP 地址 123.123.123.123 则 IIS 不知道您指的是哪个站点,因此它使用默认网站。这是关键,如果没有主机名,则始终使用默认站点。

如果您希望使用 IP 地址,您唯一的选择是使用默认站点中的应用程序文件夹。至少使用普通的 IIS。

于 2013-03-22T19:30:38.610 回答
0

自从我在 IIS 中闲逛以来已经有一段时间了,所以我有点生疏了,我不记得曾经遇到过你的场景。不过,这是我能想到的:

关于创建站点的 IIS 文档提到了很多“唯一绑定”这个短语,但并没有明确说明唯一性的范围,但是假设它意味着服务器范围是合乎逻辑的,所以如果你的两个站点需要绑定到相同的 URL,那么它似乎是不可能的。文档还声明绑定可以指定协议、端口和主机。请注意,没有提到路径;您似乎无法绑定到任何较低级别的东西。这表明可以将站点设置为绑定到www.somehost.com,但不能www.somehost.com/some/path/

话虽如此,您的问题有可能通过解决问题的根源而不是症状来解决。与其问“我如何在子路径下设置 IIS 站点,以便我可以在一个 URL 下部署两个应用程序?”,不如问“我如何在一个 URL 下设置两个应用程序并且不会遇到 Web 权限问题。配置?”

我知道一个事实,您可以很高兴地在一个 URL 的子路径下部署多个应用程序,因为这正是我们在工作中所做的 - 我们在 ASP.NET MVC 中有一个应用程序,www.ourURL.com/somepathwww.ourURL.com/otherpath. 这两个应用程序是单个 Visual Studio 解决方案下的独立项目,每个项目都有自己的 Web.config。

如果没有更多关于应用程序结构的信息和/或关于 Web.config 和子文件夹相关限制的确切问题的详细信息,我真的无法提供更多帮助;就像我说的,我们在工作中是这样部署的,我也没有遇到任何问题。

于 2013-03-22T16:53:48.697 回答