大寫的 IIS 虛擬目錄/應用程序名稱
在 IIS 中,我有一個帶有 .Net 應用程序的網站,可以像這樣訪問:
http://site1.example.com/myapp
該站點需要身份驗證,因此當我訪問它時,它會按預期重定向到http://site1.example.com/myapp/login.asx
我導出了配置,然後使用該文件在同一台伺服器下創建了一個新站點。現在,當我在http://site2.example.com/myapp訪問新站點時,它會重定向到http://site2.example.com/MYAPP/login.aspx。請注意應用名稱的大寫。
在導入 xml 配置文件之前,我對其進行了編輯,為應用程序設置了不同的根目錄(我放置了現有根目錄的副本),所以這不是問題。
當我查看 MetaBase.xml 時,新創建站點中虛擬目錄的 AppRoot 設置為 /LM/W3SVC/1584782141/Root/ MYAPP,而在導出的 xml 文件以及 Metabase.xml 中,但對於原來的虛擬目錄應該是小寫的。
我編輯了 MetaBase.xml(在 IIS 中允許線上編輯元數據庫)並保存它。完全沒有變化。我重新載入了元數據庫,更正到位,但它不起作用 - 它總是重定向到 URL 的大寫版本。
這僅在重定向到 login.aspx 時發生。如果我直接點擊登錄頁面 - 即我在瀏覽器中輸入 url,它會保持在我輸入的狀態。
此外,如果我在目錄中點擊“不受保護”頁面,它會保持原樣。
知道我還能在哪裡解決這個問題嗎?
我在 IIS 6 中發現了完全相同的問題。我在網路上的其他地方找到了一些對這個問題的引用;我認為沒有太多人這樣做會遇到錯誤。修復方法是允許直接編輯元數據庫,然後對其進行編輯以更改 AppRoot 以具有正確的大小寫。
哪個,你說你已經做到了。它總是對我有用;這就是我們在我們的環境中部署新客戶的方式。嘗試回收應用程序池,並確保刷新瀏覽器中的記憶體和 cookie。