2011-08-20 27 views
11

我正在運行Windows 7 SP 1,並且剛剛啓用了IIS 7.只是嘗試訪問默認頁面,它創建了一個503錯誤,並且應用程序池停止。我看事件日誌,我發現錯誤:IIS 7和503錯誤的文件副本訪問被拒絕問題

Windows cannot copy file \?\C:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm to location \?\C:\Users\TEMP.IIS APPPOOL.000\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm. This error may be caused by network problems or insufficient security rights.

DETAIL - Access is denied.

我試着讓TEMP.IIS APPPOOOL.000文件夾可供所有人使用。我試圖讓所有人都可以使用用戶。沒有運氣,它仍然會因同樣的錯誤而死亡。

這裏發生了什麼,它如何被修復?

回答

13

這聽起來像你有這個IIS.NET forums thread細節相同的問題。你沒有提到你是否擁有x64的Windows 7。懷疑你的開發機器以某種方式錯誤配置;聽起來像卸載和重新安裝IIS7會幫助/修復。

建議的行動路線:

  • 打開IIS和應用程序池。打開「DefaultAppPool」和其他正在使用的應用程序池。
  • 單擊這些每個的高級設置。確保「加載用戶配置文件」設置爲「假」
  • 還要確保「設置應用程序池默認設置」已加載用戶配置文件設置爲False。」
+4

我已經有同樣的問題,現在,幾年後,這個問題被問到,它是關於一個sqm文件,不能被複制。由於我不認爲這個文件很重要,我只是刪除它。現在我的應用程序池不會停止,並且我沒有對任何設置進行修改。 –

1

我在發展中遇到了同樣的問題環境(Windows 8.1),我沒有按照P.Campbell的建議禁用load user配置文件,而是改變了sqm文件的權限以允許修改IUSR,IIS_IUSRS和Network Service的訪問權限。在我的情況下,sqm文件無法向我展示我用我的用戶帳戶接管的文件所有者

基本上,我的問題是通過給予源和目標fil的正確權限來解決的ES /文件夾。

0

經過在IIs中遇到所有這些應用程序池問題後,我發現問題和解決方案。這可能會幫助你。

在創建池並首次運行池時,Microsoft Internet Server中每個網站上的每個應用程序池將在「c:\ Users」目錄下創建自己的用戶帳戶和文件夾。它實際上是一個虛擬用戶帳戶,應該爲在IIs中分配給您的Web應用程序的應用程序池命名。在大多數開發環境中,其默認網站或「DefaultAppPool」。它使用此臨時用戶帳戶來運行該池。每個網站應該有一個指定的用戶池帳戶。此用戶文件夾由池和ASP.NET用於緩存和寫入文件資源以及由II,ASP.NET和此虛擬帳戶使用的其他內容。

在某些設置中,當訪問IIs網站並使用該池時,人們沒有看到此文件夾,而是一個「TEMP」文件夾(就像您擁有的那樣)。

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

要修復它去到註冊表中: HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows NT \ CURRENTVERSION \ ProfileList文件 查看是否有與名爲「.bak」擴展爲默認應用用戶帳戶的SID的用戶帳戶。如果這樣刪除並重新啓動您的電腦。再次測試您的網站,確保其實際安裝使用De​​faulAppPool。它現在應該重新創建用戶中的「DefaultAppPool」文件夾,重新創建DefaulAppPool用戶的註冊表項,並且您的錯誤應該消失。

您可以在用戶文件夾下的那個位置刪除TEMP用戶文件夾。 (請記住,如果你的Web應用程序已經存儲到該網站的用戶緩存信息的關鍵,一些可能必須被插入到新的默認應用的用戶文件夾,但對於大多數人來說,只是將其刪除。)

我還發現我必須將這個奇怪的虛擬應用程序池帳戶添加到我的本地數據庫,以便工作進程和應用程序池accnt可以有權從SQL Server獲取數據:只需進入SQL Server並在登錄名下添加「II AppPool \ DefaultAppPool 「然後將其作爲用戶分配給您的數據庫。

(順便說一句任何人想出了這個虛擬應用程序池帳戶系統是堅果....它太複雜而曲折的整理)

我這樣做之後,我所有的堆棧溢出錯誤走在Visual Studio對於我的Web應用程序來說,所有數據連接都完美地啓動,所有對正確存儲的默認用戶配置文件的寫入權限以及IIs中應用程序池的所有重新啓動和崩潰都完全結束。 :)