2013-02-01 137 views
44

我有一個新的Win7工作站,我試圖讓ScrewTurn Wiki在機器上運行。我的STW安裝使用文件系統選項來存儲它的數據,因此我需要爲安裝網站的文件夾中的ASP.NET工作進程提供寫入權限。如何給ASP.NET權限寫入Windows 7中的文件夾?

然而,我似乎無法能夠在Win7中想出工作進程的名稱,以便將其添加到文件夾的權限中。在XP中它是ASPNET_WP,如果我沒有記錯,但這不是它在Win7中的名稱。

有人可以告訴我嗎?

編輯補充:

針對@Dragan_Radivojevic,這裏是有問題的應用程序池的樣子(命名ScrewTurnWiki):

IIS7 Application Pools

的身份是 「ApplicationPoolIdentity」

+0

[Web應用IIS7文件夾權限]的可能的複製(https://stackoverflow.com/questions/2532079/iis7-folder-permissions-for-web-application) – KyleMit

回答

108

從安全的角度來看,爲所有IIS_USRS組提供寫入權限是一個壞主意。你不需要這樣做,你可以只給運行應用程序池的系統用戶授予權限。

如果你正在使用II7(我猜你會這樣做),請執行以下操作。

  1. 打開IIS7
  2. 選擇網站,您需要修改權限
  3. 進入基本設置,看看你正在使用的應用程序池。
  4. 轉到應用程序池,並找到#3用於運行該應用程序池(標識列)
  5. 導航到IIS你的存儲文件夾
  6. 查找系統帳戶的應用程序池,選擇它,然後點擊編輯權限(下操作右側的子菜單)
  7. 打開安全選項卡,並添加所需的權限只對用戶,你在#確定3

注1:如果你看到ApplicationPoolIdentity在#3你需要引用此係統用戶喜歡此IIS AppPool {application_pool_name}。例如IIS AppPool \ DefaultAppPool

注意#2:添加此用戶時,請確保在選擇用戶或組對話框中設置正確的位置。這需要設置爲本地計算機,因爲這是本地帳戶。

+3

看起來不錯,但相關身份不會被系統識別爲用戶,並且搜索(通過高級按鈕)也找不到它。但是,我正在使用我的工作站,而不是服務器。我支持兩個防火牆,我不認爲IIS_IUSRS是暴露的。 – Cyberherbalist

+0

嘗試搜索像我上面顯示的用戶 「IIS AppPool {application_pool_name}。例如IIS AppPool \ DefaultAppPool」 –

+0

沒有運氣;我找不到這樣的用戶。如果這是一個64位Windows 7工作站,這有什麼關係嗎? – Cyberherbalist

13

我的直接解決方案(因爲我找不到ASP.NET工作進程)給IIS_IUSRS寫入(即修改)權限。這工作。我似乎回想起在WinXP中,我不得不專門給予ASP.NET工作進程寫入權限來完成此操作。也許我的記憶有問題,但無論如何...

@DraganRadivojevic寫道,他認爲這從安全觀點來看是危險的。我並不反對,但由於這是我的工作站,而不是網絡服務器,所以它似乎相對安全。在任何情況下,他的回答都會更好,並且是我在追查失敗路徑後最終解決的問題,因爲沒有爲AppPool用戶指定正確的域。

28

我知道這是一箇舊線程,但爲了進一步擴展答案,默認情況下,IIS 7.5創建應用程序池標識帳戶以運行該工作進程。添加文件權限時,您不能像普通用戶帳戶一樣搜索這些帳戶。要將它們添加到NTFS權限ACL中,您可以輸入應用程序池標識的完整名稱,它將起作用。

這只是應用程序池標識帳戶處理方式的細微差異,因爲它們被視爲虛擬帳戶。

此外,應用程序池標識的用戶名是「IIS AppPool \ application pool name」,因此如果是應用程序池DefaultAppPool,用戶帳戶將是「IIS AppPool \ DefaultAppPool」。

如果打開計算機管理並查看本地組IIS_IUSRS的成員,可以看到這些。將帳戶添加到NTFS權限ACL時,不需要在它們末尾附加SID。

希望幫助

相關問題