2009-08-02 131 views
5

我有一個ASP.NET應用程序,它嘗試在運行時在Web服務器上寫入文件。在我的開發環境中,這是有效的。然而,當我把它部署到生產服務器,我執行的代碼,我收到一條錯誤:ASP.NET +訪問路徑被拒絕

"Access to the path 'C:\Inetpub\wwwroot\MyWebApp\DirToWriteTo\' is denied." 

我的生產服務器是一個Window Server 2003的計算機。 Web應用程序設置爲允許通過IUSR_TEMPLATE帳戶進行匿名訪問。

我在做什麼錯?

謝謝!

回答

1

最可能的問題是您的匿名用戶不具有對該位置的寫入權限。

我會做的是創建一個web.config條目,您想要寫入的位置並使用該配置鍵作爲您的可寫目錄。如果需要,這將允許您爲生產服務器和開發機器分別進行配置。

接下來,只是給在配置中定義的用戶IUSER_TEMPLATE目錄寫權限,或作爲Thorarin的網絡服務,在這種情況下,你應該建立身份模擬在你的web.config說這樣就可以了指定用戶(除非您通過應用程序池配置用戶)。這應該解決問題。

+1

僅當`Web.config`在其``部分有一個`時。否則,將使用爲應用程序池設置的標識。默認情況下,這是*網絡服務*(其訪問非常有限) – Thorarin 2009-08-02 18:35:11

1

如果您有Windows 2008或以上,試着給寫權限IIS_IUSRS

(網絡服務也過去爲我工作。從我讀here,它依賴於服務器操作系統上。)

enter image description here

0

在我的情況下,Visual Studio 2015年改變現有項目的IIS AppPool用戶默認爲DefaultAppPool,它給了我權限錯誤,配置錯誤,角色提供者錯誤和空引用錯誤。發現這個並將其更改回到文件夾權限設置爲的應用程序池後,事情又開始工作。