簡體   English   中英

IIS 7:標識'IIS APPPOOL \\ DefaultAppPool'沒有足夠的權限來訪問臨時目錄

[英]IIS 7: Identity 'IIS APPPOOL\DefaultAppPool' does not have sufficient permission to access the temp directory

我在Windows7上使用IIS 7.0時遇到了奇怪且無法解決的問題。
我嘗試在我的本地測試服務器上運行站點並獲得以下錯誤:

Access to the temp directory is denied.  
Identity 'IIS APPPOOL\DefaultAppPool' under  
which XmlSerializer is running does not have sufficient permission  
to access the temp directory.  

CodeDom will use the user account the process is using to do the compilation,  
so if the user doesn't have access to system temp directory,  
you will not be able to compile.  
Use Path.GetTempPath() API to find out the temp directory location.

我有幾個池,但只有一個池正常工作。 它是Classic .NET AppPool 在其他網站上運行網站我得到錯誤,這是之前提供的。 最有趣的是我在IIS管理器的應用程序池中找不到池配置之間的任何差異。 也許我錯過了什么?
我試圖更改Windows\\TempC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Temporary ASP.NET Fileslocal settings' temporary folder訪問權限,但我的操作沒有效果。

所以,希望得到你的幫助和一些建議。

您是否調用了Path.GetTempPath()方法(您可以從每個程序調用此方法,而不是從您的網站調用)?

您必須為帳戶設置此路徑的完全訪問權限。

我也找到了這個論壇主題

另一個原因可能是設置了machine.config中的processModel,以便ASP.Net在dllhost.exe而不是aspnet_wp.exe中運行。 如果是這種情況,那么您還需要為IWAM_machineName帳戶授予權限。

您可以使用sysinternals.com中的FileMon實用程序檢查進程和帳戶的名稱,並顯示訪問被拒絕錯誤。

另一個需要考慮的選項......當創建並首次運行池時,DefaultAppPool會在“c:\\ Users”目錄下創建自己的用戶帳戶和文件夾。 它實際上是一個虛擬用戶帳戶,應該以應用程序池或“DefaultAppPool”命名。 它使用此臨時用戶帳戶來運行池。 在某些設置中,當訪問IIs網站並使用默認池時,人們看不到此文件夾而是TEMP文件夾。 池和ASP.NET使用此User文件夾來緩存和寫入文件資源以及IIs,ASP.NET和此虛擬帳戶使用的其他內容。

如果您在“用戶”文件夾中看到“TEMP”文件夾,則表明IIs和注冊表中的應用程序池帳戶已損壞。 池正在創建TEMP文件夾作為此虛擬帳戶的備份,該虛擬帳戶可能沒有正確的安全設置。 我有這個確切的場景。

要解決此問題,請轉到以下注冊表:HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Windows NT \\ CurrentVersion \\ ProfileList查看您是否擁有DefaultAppPool用戶帳戶的擴展名為“.bak”的SID用戶帳戶。 如果有,請刪除它並重新啟動電腦。 再次測試您的網站,確保其實際設置為使用DefaultAppPool。 它現在應該在Users中重新創建“DefaultAppPool”文件夾,重新創建DefaultAppPool用戶的注冊表項,並且您的錯誤應該消失。 即沒有TEMP文件夾。

在我這樣做之后,我的Web應用程序的Visual Studio中的所有堆棧溢出錯誤以及IIs中應用程序池的所有重新啟動和最終崩潰都消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM