Windows-Server-2008-R2
IIS 7.5 文件夾和網站權限
情況:
在 IIS 伺服器管理器中創建的測試網站
- 基本設置/連接為:應用程序使用者
- 身份驗證/匿名身份驗證/編輯:應用程序池身份
物理路徑具有“IIS AppPool\DefaultAppPool”讀取和執行,列出文件夾內容和讀取權限(加上繼承完全控制的管理員/系統)
- 包含單個文件 index.html(加上使用上述設置生成的 web.config)
錯誤:
- HTTP 錯誤 500.19 - 內部伺服器錯誤
- 配置錯誤 由於權限不足,無法讀取配置文件
問題:
- 如何使其與應用程序標識一起使用?(讓它在匿名身份驗證和物理文件夾上的 rx 權限下使用 iusr 工作)
- 我做錯了嗎,或者這確實是我發現的大多數資源似乎暗示的最佳做法?
我也非常感謝有關 IIS 7.5 的“基礎”的任何好的教程——我無法在 learn.iis.net 和其他幾個站點上找到這個特定問題的答案,並且通常發現那裡可用的資源非常分散。
如果您使用通常的 IIS7.5 開箱即用預設值創建了網站,那麼您的“測試網站”也將為其創建一個應用程序池。
站點將按原樣執行請求的預設身份
ApplicationPoolIdentity
。ApplicationPoolIdentity
是一個特殊的綜合帳戶,它是動態創建的,代表您網站的應用程序池的身份。你說:
物理路徑已讀取並執行“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)