首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 專案執行權限問題排查:ASP.NET 帳號資料夾存取權限、NTFS 安全性標籤缺失與解決方案

     編輯:關於ASP.NET

下載專案到本機建立虛擬目錄後,IE 訪問報「沒有權限訪問資料夾」。根因:ASPNET (或 Network Service) 帳號缺乏專案資料夾的讀取/執行權限。

常見原因與排查步驟

  1. NTFS 權限未設定:資料夾屬性「安全性」標籤中無 ASPNET / IIS_IUSRS / Network Service。
  2. 2. 安全性標籤不見:資料夾屬性無「安全性」標籤 → 可能原因:
    • 磁碟非 NTFS (FAT32/exFAT) → 無法設定 ACL。
    • 簡易檔案共用開啟 → 「資料夾選項」→「檢視」→ 取消勾選「使用簡易檔案共用」。
    • 非管理員登入 → 需管理員權限編輯 ACL。
    3. 繼承中斷:父資料夾權限未正確繼承至子資料夾。

標準解決流程 (Windows 2000/XP/Server 2003)

  1. 以管理員登入。
  2. 2. 專案資料夾右鍵 → 「屬性」 → 「安全性」標籤。 3. 「新增」 → 輸入 ASPNET (或 Network Service / IIS_IUSRS) → 「確定」。 4. 給予「讀取和執行」、「列出資料夾內容」、「讀取」權限 → 「套用」。 5. 勾選「將這些權限套用到所有子資料夾和檔案」 → 「確定」。

案例:移動到 C:\DotNet 解決

作者將專案從原位置 (可能權限受限、繼承異常) 移至 C:\DotNet 新建資料夾,重新設定權限後正常。說明:新建資料夾預設繼承父目錄 (C:\) 權限,通常包含 SYSTEM/Administrators/Users,再手動加入 ASPNET 即可,避免舊資料夾 ACL 混亂。

IIS 7+ (Windows Server 2008/Vista 以上) 現代做法

  • 應用程式集區使用 ApplicationPoolIdentity (虛擬帳號 IIS AppPool\MyPool)。
  • 資料夾 ACL 加入 IIS AppPool\MyPool 給予「讀取/執行」。
  • 或:統一授權 IIS_IUSRS 群組 (含所有集區身分)。

快速驗證腳本

<%@ Page Language="C#" %>
<%=(System.Security.Principal.WindowsIdentity.GetCurrent().Name)%>

瀏覽此頁面可確認當前執行身分,再針對該身分授權。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved