IIS 隨機返回 INET_E_RESOURCE_NOT_FOUND
我在 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
有任何想法嗎?謝謝。
您說 ISP 正在為您進行轉發,這表明他們正在代理/埠轉發到內部 IP,並且您的伺服器只有一個 IP 地址(可能是私有 IP 地址)。
如果這是真的,那麼聽起來他們的代理伺服器在連接到您的 IIS 伺服器時遇到問題(出於多種原因)並且是返回錯誤的那個。我會要求提供商檢查他們的路由器/防火牆上的日誌,看看是否是這種情況。
假設您直接在瀏覽器中收到此錯誤,而不是由代理伺服器返回,您可以通過在主機文件中添加一個條目來測試它是否是由 DNS 問題引起的(
%windir%\System32\drivers\etc\hosts
在 Windows 中;您需要將其編輯為管理員)將您網站的公共 IP 地址與其 DNS 條目相關聯)。如果你這樣做了,並測試了公共網站,你仍然得到同樣的錯誤,這不是 DNS 問題,你可以開始查看代理伺服器配置。(測試後記得刪除條目!)