我遇到了一生中见过的最奇怪的 IIS 错误。
我在 IIS 服务器上有一个应用程序/目录,当通过 HTTPS 和计算机 FQDN 访问其中的任意内容(包括 HTML 文档)时,都会抛出错误 500。当我使用“localhost”访问它时,它运行正常。当我在 hosts 文件中为 NIC 的 IP 添加一个虚假条目时,它运行正常。当我使用计算机名称和 HTTP 访问它时,它运行正常。
以下是一个图表(机器名称为“lofn.titaniumcrowbar.com”):
http - lofn.titaniumcrowbar.com:有效 https - lofn.titaniumcrowbar.com:损坏 https - localhost:有效 https - temp.titaniumcrowbar.com(放入 hosts 文件):有效
我设置了跟踪,并得到了一些无用的信息:
“由于线程退出或应用程序请求,I/O 操作已中止。(0x800703e3)”
这是有道理的,除非这种情况发生在拉起的时候静态内容。虽然目录可能是一个“应用程序”,但其中的内容都是静态的。
任何/所有建议,无论多么奇怪,都非常感激。
谢谢!
杰杰
答案1
您能从本地 PC 检查 Ping 吗?您检查过网络中的其他 PC 吗?DNS 可能有问题。
答案2
您正在运行 IIS7/ASP.NET 吗?我读过一篇概述类似问题的文章:
原因
此问题是由于 IHttpConnection::IsConnected 方法中的错误而发生的。如果在 Web 客户端连接断开后立即调用 IHttpConnection::IsConnected 方法,则该方法会错误地返回 true 值而不是 false 值。因此,会发生 COMException 异常。
这个错误在这里被解决:http://support.microsoft.com/kb/977453。如果没有,您在 IIS 或 HTTPErr 日志中看到任何有用的信息吗?