Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS「拒絕存取 temp 目錄」權限問題徹底解決

編輯:關於伺服器

錯誤訊息

拒絕存取 temp 目錄。用來執行 XmlSerializer 的身分識別 "NT AUTHORITY\NETWORK SERVICE" 沒有存取 temp 目錄的足夠權限。

常見誤區

直接給 C:\Windows\Temp 加 NETWORK SERVICE 權限往往無效,因為 ASP.NET 實際使用的暫存目錄可能是:

  • C:\Windows\Temp
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
  • 應用程式池身分識別的用戶設定檔暫存目錄 (%TEMP%)

徹底解決步驟

  1. 確認實際路徑:在 .NET 程式中輸出 Path.GetTempPath() 查看實際路徑。
  2. 授權關鍵目錄:對上述所有可能目錄授予 IIS_IUSRS (IIS 7+) 或 NETWORK SERVICE (IIS 6) 讀取/寫入/修改 權限。
  3. 關鍵步驟:重啟 IIS 服務:
    net stop w3svc /y && net start w3svc
    或回收對應應用程式池。
  4. 若仍失效:重啟伺服器,確保所有快取的權限 Token 更新。

進階排查

若問題在執行清理腳本 (刪除暫存檔) 後出現,可能誤刪了 Temporary ASP.NET Files 目錄結構。手動重建:

mkdir "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files"
icacls "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files" /grant "IIS_IUSRS:(OI)(CI)F"
Copyright © Windows教程網 All Rights Reserved