Windows-Server-2008-R2

IIS 7.5 文件夾和網站權限

  • January 5, 2012

情況:

  • 在 IIS 伺服器管理器中創建的測試網站

    • 基本設置/連接為:應用程序使用者
    • 身份驗證/匿名身份驗證/編輯:應用程序池身份
  • 物理路徑具有“IIS AppPool\DefaultAppPool”讀取和執行,列出文件夾內容和讀取權限(加上繼承完全控制的管理員/系統)

    • 包含單個文件 index.html(加上使用上述設置生成的 web.config)

錯誤:

  • HTTP 錯誤 500.19 - 內部伺服器錯誤
  • 配置錯誤 由於權限不足,無法讀取配置文件

問題:

  • 如何使其與應用程序標識一起使用?(讓它在匿名身份驗證和物理文件夾上的 rx 權限下使用 iusr 工作)
  • 我做錯了嗎,或者這確實是我發現的大多數資源似乎暗示的最佳做法?

我也非常感謝有關 IIS 7.5 的“基礎”的任何好的教程——我無法在 learn.iis.net 和其他幾個站點上找到這個特定問題的答案,並且通常發現那裡可用的資源非常分散。

相關: IIS 7.5 網站目錄權限,Windows Server 2008 R2 - IIS7.5 - 網站權限

如果您使用通常的 IIS7.5 開箱即用預設值創建了網站,那麼您的“測試網站”也將為其創建一個應用程序池。

站點將按原樣執行請求的預設身份ApplicationPoolIdentityApplicationPoolIdentity是一個特殊的綜合帳戶,它是動態創建的,代表您網站的應用程序池的身份。

你說:

物理路徑已讀取並執行“IIS AppPool\DefaultAppPool”

這可以解釋為什麼你會收到500.19錯誤。除非您將站點分配給“DefaultAppPool”應用程序池,否則此權限不會做任何有用的事情。

您需要分配ApplicationPoolIdentity站點的(至少)讀取和執行權限。為此,請從命令行執行以下命令:

icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)

<app_pool_name>為您的測試站點創建的應用程序池的名稱在哪裡。您可以通過執行以下命令找到它的名稱:

appcmd list app /site.name:"<your site name>"

這將返回類似內容並顯示您站點的應用程序池的名稱(以以下ApplicationPoolIdentity名稱命名:

APP "test site/" (applicationPool:test site)

引用自:https://serverfault.com/questions/346777