Windows Server 2012 R2 和 IIS 8.5 中的 ASP.NET 帳戶發生了什麼變化?
我第一次嘗試在 IIS 8.5 和 Windows Server 2012 R2 上設置 ASP.NET MVC 3 應用程序。此應用程序使用 Active Directory 和 Windows 身份驗證進行權限管理。在 IIS 6 上,我必須授予機器 ASP.NET(在伺服器上)對我的日誌文件夾的修改權限,以便它可以寫入它。目前,我在此系統上沒有看到 ASP.NET 電腦帳戶。我已授予機器上 NETWORK SERVICE 帳戶的修改權限,但應用程序似乎沒有寫入日誌文件。請注意,這是一個本地日誌文件;它不是 IIS 的一部分。
我確定解決方案可能是我需要翻轉的一些簡單開關,但我已經跟踪了幾個小時,不確定發生了什麼。有人有想法嗎?
我已確保安裝了以下伺服器角色和功能:
應用程序開發
.Net 可擴展性 3.5
項目清單
網路可擴展性 4.5
應用程序初始化
ASP
ASP.NET 3.5
ASP.NET 4.5
ISAPI 擴展
.NET Framework 3.5 功能
.NET Framework 4.5 功能
- ASP.NET 4.5
- WCF 服務
伺服器角色 - 安全
- 基本認證
- 網址授權
- Windows 身份驗證
IIS 7+ 使用一個內置的稱為 IIS_IUSRS 的組,這與 IIS 安裝添加的 IIS6 使用者/組不同。這允許 ACL 可以在伺服器之間傳輸。
如果您使用帶有自定義帳戶的 AppPool,請將其添加到 IIS_IUSRS 組。如果您使用預設帳戶,請使用 IIS_IUSRS 組對您的文件夾進行 ACL。
來自官方文件
IIS 7 及更高版本還簡化了配置應用程序池標識的過程,並使所有必要的更改變得更容易。當 IIS 啟動一個工作程序時,它需要創建一個該程序將使用的令牌。創建此令牌時,IIS 會在執行時自動將 IIS_IUSRS 成員身份添加到工作程序令牌。作為“應用程序池標識”執行的帳戶不再需要成為 IIS_IUSRS 組的顯式部分。此更改可幫助您以更少的障礙設置系統,並使您的整體體驗更加有利。
因此看起來只需 ACL IIS_IUSRS 組就足夠了,無需將執行 AppPool 的實際身份添加到組本身