2010-12-13 169 views
0

典型的問題,但我已經盡我所能想到讓這個工作。我在我的電腦上將NETWORK SERVICE和ASPNET帳戶設置爲FULL CONTROL。我正在使用內置的Cassini Web服務器來測試我的應用程序,但沒有運氣。我甚至試圖在APP_DATA文件夾之外創建一個文件夾,並且仍然聲稱訪問被拒絕。ASP.net:無法寫入App_Data文件夾,訪問被拒絕

任何人有任何想法?

代碼示例:

Dim uploadedFile As HttpPostedFile = Request.Files(0) 
     Dim len As Integer = uploadedFile.ContentLength 
     Dim fn As String = Path.GetFileName(uploadedFile.FileName) 
     Dim SaveLocation As String = Server.MapPath("~/Help") 
     Dim MyStream As Stream = uploadedFile.InputStream 
     Dim input(len) As Byte 

     MyStream = uploadedFile.InputStream 
     MyStream.Read(input, 0, len) 

     Try 

      Dim newFile As FileStream = New FileStream(SaveLocation, FileMode.Create) 
      newFile.Write(input, 0, input.Length) 
      newFile.Close() 
      'Dim writer As Stream = New FileStream(SaveLocation, FileMode.Create) 
      'writer.Read() 
      'writer.Close() 
      'uploadedFile.SaveAs(SaveLocation) 
     Catch ex As Exception 

     End Try 

UPDATE:需要有在保存位置的文件名,固定。

+0

您確定網絡服務器正在運行您的網站作爲NETWORK SERVICE或ASPNET用戶嗎?聽起來像它可能會在不同的用戶下運行它。 – derek 2010-12-13 16:42:07

+0

我已將安全選項卡中的所有內容都設置爲完全控制。 – jlrolin 2010-12-13 16:44:00

回答

2

好的,我明白了。我需要在SaveLocation中有文件名。完全錯過了。謝謝你的幫助。

+2

只需在原始問題中發佈該信息,而不是作爲答案。 – 2010-12-13 17:06:24

+4

@Jack - 事實上,他正在爲自己的問題提供一個答案,這對於堆棧溢出平臺是有效的,並且適用於這種情況。 – 2010-12-13 17:35:05

0

您使用的是哪個版本的IIS?

在IIS 6及更高版本上,它是網絡服務。

在IIS 5及更低版本上,它是需要所需訪問權限的ASPNET用戶帳戶。

+0

我正在使用內置的Cassini Web服務器。但是我給了NETWORK SERVICE和ASPNET訪問權限,完全訪問權限。 – jlrolin 2010-12-13 16:55:05

0

如果您使用的是IIS,請查找您遇到問題的站點的應用程序池的系統(或用戶)帳戶。請檢查以確保該用戶對該文件夾有權限。

如果您使用的是Visual Studio 2005+,則它正在部署一個新的ASP.NET開發服務器。這將作爲您當前登錄的帳戶運行。你是這臺機器上的本地管理員嗎?

+0

我正在使用VS 2010,並且我不是管理員。儘管我的用戶帳戶已完全控制。 – jlrolin 2010-12-13 16:57:56

+0

你有沒有嘗試啓用對每個人的完全控制?如果這導致錯誤消失,那麼存在帳戶權限問題。如果錯誤仍然存​​在,那麼你有一個不同的目錄訪問問題。 – Keith 2010-12-13 17:04:06