Asp.net-Mvc

靜態圖像和 CSS 未顯示 (401) 但捆綁的 css 和 js 顯示

  • June 24, 2021

我們剛剛在生產環境中部署了一個 ASP.NET MVC 4 webapp,並且正在試驗一個奇怪的行為:該應用程序可以工作,但圖像沒有顯示,並且部分 CSS 沒有載入

在分析 HTTP 請求時,我可以看到:

  • 對圖像 (*.png) 的請求失敗並顯示401狀態程式碼
  • 對 css 文件的請求失敗並顯示401狀態程式碼
  • 對捆綁資源 (*.js / *.css) 的請求成功

該應用程序在我們的 Dev/Integration/Staging 和 Pre-Prod 環境中正常工作,所以我希望它是一些 IIS 配置技巧……

我們已經檢查過:

  • IIS 中僅啟用匿名身份驗證
  • IIS 池使用者對資源具有讀取權限

我應該補充一點,還配置了一些舊的 HTTP 模組(如果使用者未通過身份驗證,它們會負責將使用者重定向到某個登錄頁面……)

(我不知道這是否相關,但應用程序在訪問其根 URL(虛擬目錄)時失敗,HTTP 狀態為 401,沒有尾部斜杠……即https://{the domain}/{WebApp Name}失敗但https://{the domain}/{WebApp Name}/工作正常)

關於可能發生的事情的任何線索?

謝謝 !

我終於可以弄清楚了…

  1. 啟用了匿名身份驗證(並使用預設配置暗示程式碼看到的使用者是使用者 IUSR)。
  2. Web 應用程序的文件沒有儲存在安裝 IIS 的本地,而是儲存在某種網路共享驅動器上……
  3. 在那個地方,IUSR 沒有讀取權限,因此無法讀取靜態資源。

我不得不更改預設的“直通身份驗證”,指定本地執行不作為“經過身份驗證的使用者”(在這種情況下為 IUSR)完成。

在 IIS 的 WebApp 基本設置中,不要使用“pass-thouh”身份驗證,使用“ Connect as

不要使用直通身份驗證 在此處輸入圖像描述

![IIS 中的文件夾身份驗證][1]](https://i.stack.imgur.com/IEspT.jpg)

我能夠通過..修復它

  1. 導航到 IIS 中包含 css 文件的文件夾
  2. 點兩下“功能視圖”上的“身份驗證”圖示
  3. 如圖所示,右鍵點擊匿名身份驗證,然後選擇編輯
  4. 選擇“應用程序池標識”選項,如圖所示
  5. 重新啟動網站

引用自:https://stackoverflow.com/questions/21025519