我在 Windows 2008 Server 上将 IIS 7 用于使用 Bootstrap 的 ASP.NET 4 应用程序。该服务器有一个私有 IP 地址供工作使用,但也可以通过外部公共 IP 地址访问。我们的互联网接入提供商为我们进行转发。该服务器还运行 F-Secure 防病毒系统。
当我从服务器本身浏览网站时,使用私有 IP 或公共 IP,它工作正常。但是当我使用远程客户端(显然是使用公共 IP)时,它会随机运行。一个典型的场景是这样的:
- 我在浏览器上键入网站 URL。我得到主页。
- 我单击一个链接导航到另一个页面。我收到 INET_E_RESOURCE_NOT_FOUND 错误。
- 我在浏览器上点击刷新。我得到了页面。
- 我点击另一个链接。我得到了页面。
- 我点击另一个链接。我收到 INET_E_RESOURCE_NOT_FOUND 错误。
等等等等。这显然是随机的。有时服务器返回页面,有时我得到 INET_E_RESOURCE_NOT_FOUND 错误。我尝试过的每个客户端都会发生这种情况,从 Windows 10 机器上的 Edge 到 iPhone 上的 Safari。
有时,当我第一次从客户端计算机浏览到主页时,服务器无法传递主页。我重试了几次无济于事。然后,大概刷新 5 或 10 次后,我得到了页面。从那时起,它可以正常工作,直到最终再次失败。
据我了解, INET_E_RESOURCE_NOT_FOUND 并不意味着找不到页面(那将是 404),而是找不到服务器。它通常与 DNS 或代理错误有关。
我一直在查看 IIS 日志文件。据我所见,有时日志记录会被以下条目打断:
GET /fonts/glyphicons-halflings-regular.woff - 80 - 193.144.38.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/52.0.2743.116+Safari/537.36+Edge/15.15063 404 3 50 78
显然,客户端正在尝试获取字体文件,而服务器返回 404 错误。字体文件在服务器上的正确文件夹中,所以我不确定为什么找不到它。
编辑。我现在已经解决了字体文件的问题(这是由于 IIS 上缺少 MIME 类型条目),但仍然存在随机的 INET_E_RESOURCE_NOT_FOUND 错误。带有字体文件的 404 很可能是一条红鲱鱼。
编辑。我对同一个网站有另一个问题,这可能是相关的。请在此处查看:https ://stackoverflow.com/questions/43814006/smtpexception-in-asp-net-application-with-remote-browser
有任何想法吗?谢谢。
假设您直接在浏览器中收到此错误,而不是由代理服务器返回,您可以通过在主机文件中添加一个条目来测试它是否是由 DNS 问题引起的(
%windir%\System32\drivers\etc\hosts
在 Windows 中;您需要将其编辑为管理员)将您网站的公共 IP 地址与其 DNS 条目相关联)。如果你这样做了,并测试了公共网站,你仍然得到同样的错误,这不是 DNS 问题,你可以开始查看代理服务器配置。(测试后记得删除条目!)我怀疑您的 mime 类型设置不正确。我建议您将其明确添加为服务器配置的一部分。
其他人之前遇到过这个问题: https ://stackoverflow.com/questions/4015816/why-is-font-face-throwing-a-404-error-on-woff-files
您说 ISP 正在为您进行转发,这表明他们正在代理/端口转发到内部 IP,并且您的服务器只有一个 IP 地址(可能是私有 IP 地址)。
如果这是真的,那么听起来他们的代理服务器在连接到您的 IIS 服务器时遇到问题(出于多种原因)并且是返回错误的那个。我会要求提供商检查他们的路由器/防火墙上的日志,看看是否是这种情况。
第一件事情。服务器更新是最新的吗?检查服务器中 .net 的版本并将其更新。
确保应用程序使用的所有端口都为您的 isp 转发
此外,请使用此https://gallery.technet.microsoft.com/scriptcenter/Get-event-logs-errors-and-6871f163检查您的服务器日志
检查最常见的错误并检查它是否相关。