8

我的任务是向现有的 IIS 6.0 网站添加功能。为此,我构建了一个 ASP.NET MVC 应用程序。当部署为它自己的站点时它工作正常,但当我尝试将它部署为它需要存在的实际站点上的虚拟目录时似乎不起作用。

服务器名称为 CWEBSERVER,IP 为 192.168.1.11。通过查看 IIS 管理器,这是站点结构:

(Default Website) (root)
  - PRODUCTION (vDir)
  - CONTENT (not a vDir)
  - DATAFOLDER (vDir, contains MVC app, just added by me, not working)

奇怪的是,当我从服务器上的浏览器中键入以下 URL 时,它可以工作:

http://localhost/DATAFOLDER/account.aspx
http://127.0.0.1/DATAFOLDER/account.aspx
http://192.168.1.11/DATAFOLDER/account.aspx

以下 URL(这是我需要工作的 URL)没有:

http://CWEBSERVER/DATAFOLDER/account.aspx

我得到的错误是“找不到资源”。

仔细观察后,我意识到对http://CWEBSERVER的请求将发送到 PRODUCTION vDir,但对http://localhosthttp://192.168.1.11的调用将发送到网站的根目录。我想这是原始网站设计师设置的。我不确定如何更改此设置,但我认为无论如何我都无法更改它,因为实际上还有大量其他目录会受到影响。我想指出的另一件事是:可以通过访问http://CWEBSERVER/CONTENT访问 CONTENT 文件夹。这真的很奇怪,因为我认为http://CWEBSERVER将我指向根目录,所以我认为“/CONTENT”实际上无法访问 CONTENT 文件夹。

现在我的问题是:如何通过http://CWEBSERVER/DATAFOLDER 访问我的 DATAFOLDER?我认为我应该将 DATAFOLDER vDir放在PRODUCTION vDir 中。我试过了,使用 localhost 或 IP 仍然可以通过以下方式访问:

http://localhost/PRODUCTION/DATAFOLDER/account.aspx
http://127.0.0.1/PRODUCTION/DATAFOLDER/account.aspx
http://192.168.1.11/PRODUCTION/DATAFOLDER/account.aspx

但是,当我使用 CWEBSERVER 时,它仍然失败:

http://CWEBSERVER/DATAFOLDER/account.aspx

错误仍然是“找不到资源。”。任何人都可以对此有所了解吗?具体来说,我有这些问题:

  1. http://localhost如何进入根目录,而http://CWEBSERVER 如何进入 PRODUCTION vDir?我在哪里可以更改此设置?
  2. 为什么“ http://localhost/PRODUCTION/DATAFOLDER/account.aspx ”可以工作,但“ http://CWEBSERVER/DATAFOLDER/account.aspx ”不行?

这个问题的公认答案(赏金将授予谁)需要能够做到,这样我才能访问http://CWEBSERVER/DATAFOLDER/account.aspx。谢谢!

4

6 回答 6

11

很可能您只将 IIS 绑定到 IP 地址。转到 IIS 管理器,然后转到网站上的属性。然后,从网站选项卡中,转到属性。

为该主机标头值添加标识。

如有必要,您可以添加多个绑定。

更新

我想我知道你现在想要什么了。从 IIS 管理器中,展开您的默认网站。然后右键单击生产虚拟目录并选择“创建虚拟目录”。称这个新的DATAFOLDER。然后将其绑定到文件系统上的现有位置。

我真的认为你需要清理一下。我要做的第一件事是决定如何真正访问所有内容。换句话说,当他们键入http://www.mysite.org/时 ,应该是什么?如果是 PRODUCTION 目录,则创建一个新站点并将其指向 PRODUCTION 目录,然后在其下创建您的 DATAFOLDER 虚拟应用程序。

于 2009-05-22T15:04:35.857 回答
5

虽然我没有浏览整个答案列表,但我通过以下方式遇到了这个解决方案。我的网页链接可以使用,localhost但不能使用 IP 或计算机名称。它没有任何错误,尤其是 GREAT IE (****)。

为了解决这个问题,我在 IE 的受信任站点中添加了该站点。

可能有助于减少一些挫败感!

于 2012-01-11T06:36:48.430 回答
2

我有一个类似的问题,通过为我的临时 IIS 服务器分配一个静态 IP 解决了这个问题。(我分配的 IP 地址与动态分配的 IP 地址相同,即 192.168.56.101。)

愿这对某人有所帮助。

还要检查防火墙设置。

于 2013-09-23T13:39:58.930 回答
1

像 Chris Lively 所说的那样,为其他主机名添加更多绑定,或者添加一个具有相同内容设置的新站点。IIS 通过查看主机标头信息来做出响应,如果您只有一个绑定到端口 80 的默认网站,它不会处理所有可能的标头。

如果名称是您公司内部的名称,例如机器名称或内部 DNS 条目,您可能会放弃让默认绑定完成这项工作。如果它在测试中不起作用,请为该情况添加一个绑定(CWEBSERVER 或 mysite.org)。如果您关心它的双向工作,请在使用和不使用 www 的情况下对其进行测试。

在 IIS 中为相同的内容添加多个“站点”并没有太大的缺点。例如你可以有

mysite.org 指向 /PRODUCTION/DATAFOLDER/index.html

Marketingsite.com 指向 /PRODUCTION/DATAFOLDER/index.html

然后你可以做一些事情,比如有不同的 SSL 设置等等。在我的 Web 服务器上,除非出现问题(比如我设置了一个新的外部 IP 地址并且需要尚未修改绑定),否则默认网站没有任何内容。

选择你的毒药,但基本上你只需要在 IIS 中添加设置,直到它按照你想要的方式处理所有可能的地址。

于 2009-05-22T17:58:14.840 回答
1

对我来说,这是一个防火墙问题:

  1. 转到:控制面板 -> Windows 防火墙 -> 允许程序或功能通过 Windows 防火墙

  2. 滚动到列表底部并选择 www 服务 (http) 的复选框。

  3. 节省

现在我可以访问http://computername.domain name

于 2014-01-28T21:02:28.947 回答
0

将“192.168.1.11 cwebserver”添加到 %Windir%/system32/drivers/etc/hosts

于 2009-05-22T15:07:14.153 回答