前言
最近同事詢問,系統 Link 到 aspnet_client 中的 js 檔案時,都無法下載,出現 401 Unauthorized 。
同事確認「匿名驗證」也有啟用,怎麼還會噴 401 呢?
研究與解決
連到本機直接瀏覽那個檔案,錯誤內容為「401.3 - Unauthorized」,詳細資料為「因為網頁伺服器上此資源的存取控制清單 (ACL) 設定或加密設定的緣故,您沒有檢視此目錄或網頁的權限。」。
看來應該跟目錄的安全性有關係,於是再看一下它的根目錄所在路徑,發現它並不是預設的位置(c:\interpub\wwwroot)。
所以我先將 IIS 根目錄改回預設的 c:\interpub\wwwroot ,然後再用 Browser 瀏覽 aspnet_client 中的隨便一個 js ,它是會下載的。
於是跟預設的跟目錄安全性比對一下發現,目前的這個根目錄下的 aspnet_client 目錄,少了 Everyone 這個使用者。
於是在一樣的目錄安全性中加入 Everyone ,並授與 Read 的權限,再試看看就可以了哦!