使用部分限定名称时网站返回 500 错误

使用部分限定名称时网站返回 500 错误

我正在建立一个内部网站来托管网络服务。

该网站具有 DNS 条目service.test.company.local。该公司将company.local其用作内部应用程序的 DNS 区域,并且此条目在所有 DNS 请求中都以静默方式添加后缀。

这样,查找就会service.test解析出全名和正确的 IP 地址。

IIS 6 站点配置为侦听 IP 地址service.test解析的端口 80。

当尝试通过 访问该站点时service.test.company.local,地址解析并且服务显示正确。

当尝试通过 访问该站点时service.test,会显示 IIS 错误页面,报告 500 - 内部服务器错误。

网站的日志文件或应用程序事件日志中不会为该请求生成任何条目。

我不明白错误从何而来,而且 IIS 提供的相关信息太少,这真是令人沮丧。

对此问题或解决方案有什么想法吗?还有其他信息来源可以查阅吗?

编辑:

来自IIS的不友好错误是:

未知主机


描述:无法找到名为“service.test”的服务器 --- 该服务器没有 DNS 条目。服务器名称可能拼写错误,或者服务器不再存在。请仔细检查名称并重试。


编辑:2

我怀疑这与组织设置 DNS 条目的方式有关。我可以将其他前缀条目添加到我的主机文件中,并在本地获得对网站的正确解析。

我认为这个问题需要 DNS 专家来指出潜在的问题。不幸的是,我没有 DNS 条目的权限,所以我预计会很麻烦。

答案1

在我的运营团队参与进来后,答案是代理服务器一直在尝试处理请求,而不是绕过本地网络。

返回的错误消息来自代理服务器,而不是 IIS 服务器。当运营团队的一名成员注意到 HTTP 请求没有像他们预期的那样发送代理绕过信息时,他们偶然发现了此信息。

代理绕过规则包括*.company.local,它适用于没有任何其他后缀的地址并为完全限定名称提供绕过,但在使用其他后缀时似乎不适用,例如.test

由此,我们认为该问题太复杂而无法修复,并且我们将使用完全限定名称作为“足够好”的解决方法。

答案2

编程英雄,

您是否已在特定网站上为 service.test 设置了站点主机头。由于 1 个 IP 地址支持多个站点,因此 IIS 使用主机头来区分在端口 80 上托管的情况。

如果您单击网站的属性,然后单击高级,添加主机头,并在空白处输入 service.test,如果 dns 解析为 ip 等...只需确保您在文档中有一个正确的默认页面并且它应该加载..

尝试一个 hello world 只是为了看看 html 是否可以加载..

雷格德

答案3

编程英雄,

CodingGorilla 的观点很好,这个错误不是主机头问题导致的错误。内部错误似乎指向其他问题。

你能看一下网站的应用程序池吗,你使用网络服务作为身份吗?http://本地主机加载或给您一个错误文档未找到?您可能只是尝试创建一个新站点并尝试使用该站点,如果本地主机使用 htm 文件加载,则可能是该特定站点的元数据库中存在某些关闭的情况。

规则

答案4

根据您的编辑,我认为您根本没有影响 IIS 服务器。正如您所提到的,请求从未显示在 IIS 日志中,并且这种错误似乎不是 IIS 会给您的错误。

尝试编辑您的主机文件(c:\windows\system32\drivers\etc\host)并添加以下条目:

service.test    127.0.0.1

这应该确保 service.test 请求到达您的 IIS 服务器(假设您是从 IIS 服务器本身访问它的,正如您在评论中提到的那样)。

如果成功,那么问题很可能出在服务器上配置名称解析的方式上。也就是说,“company.local”域不在 DNS 搜索后缀列表中。

相关内容