
我正在設定一個內部網站來託管網路服務。
該網站有 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://localhost載入或給你一個錯誤檔案未找到?您可能只是嘗試建立一個新站點並嘗試使用該站點,如果本地主機加載了 htm 文件,則它可能是元資料庫中某個特定站點已關閉的內容。
註冊表
答案4
根據您的編輯,我認為您根本沒有訪問 IIS 伺服器。正如您所提到的,該請求永遠不會顯示在 IIS 日誌中,而這種錯誤看起來不像 IIS 會給您提供的錯誤。
嘗試編輯主機檔案 (c:\windows\system32\drivers\etc\host) 並新增下列項目:
service.test 127.0.0.1
這應該確保 service.test 請求發送到您的 IIS 伺服器(假設您是從 IIS 伺服器本身存取它,正如您在評論中提到的)。
如果有效,則問題可能出在伺服器上配置名稱解析的方式。也就是說,「company.local」網域不在 DNS 搜尋後綴清單中。