2012-12-02 72 views
1

您好我一直在嘗試正確配置IIS 6給大約2天現在寫permisiosn,我似乎無法找到任何好的資源。我對ASP有點新。 NET,直到現在我從來沒有必須使用IIS。設置文件夾的寫權限創建

我想要做的是上傳文件到服務器。服務器上的每個用戶將有他自己的特殊文件夾女巫將通過C#自動創建。現在,當我嘗試上傳文件時,出現此錯誤:

Access to the path 'D:\Projects IDE\Visual Studio\MyWork\Websites\Forum\Images\avatar\userAvatars\aleczandru' is denied

這是我爲每個用戶創建的文件夾並將文件保存代碼:

private void addImageToApp() 
{ 
    string path = "~/Images/avatar/userAvatars/" + User.Identity.Name; 

    createPath(path); 
    if(Directory.Exists(HostingEnvironment.MapPath(path))) 
    { 
     try { 
       UploadImage.SaveAs(HostingEnvironment.MapPath(path)); 
       MultiViewIndex.ActiveViewIndex = 0; 
     }catch(Exception ex) 
     { 
       AvatarDetails.Text = ex.Message; 
     } 
    } 
} 

private void createPath(string path) 
{ 
    string activeDir = HostingEnvironment.MapPath("~/Images/avatar/userAvatars"); 
    if(!Directory.Exists(Server.MapPath(path))) 
    { 
     string newPath = Path.Combine(activeDir, User.Identity.Name); 
     Directory.CreateDirectory(newPath); 
    } 
} 

我能在互聯網上找到的是,我必須通過添加寫permision文件夾/屬性/安全/ ...雖然這一切都很好,但我無法爲每個回合做這件事DER。

到目前爲止,我不太確定IIS是我需要配置的那個,我有點失落。

我需要做什麼才能讓文件夾自動在文件夾創建時寫入權限?

如果有人有一篇很好的文章或教程,說明如何做到這一點,請與我分享我能找到的所有信息都非常基本。

編輯

我已經加入了網絡服務帳戶添加到圖像全permision文件夾,並設置應用程序的池標識,以網絡服務,但我仍然得到同樣的錯誤

編輯

爲了使這項工作能夠完成,我已經搞砸了SQL-SERVER,所以我可能會錯過配置一些東西,我知道NETWORK SERVICE存儲在SQL SERVER master.db中?database.I似乎有兩個網絡的服務可以登錄這是問題,我記得當我第一次檢查的話我什麼都沒有,現在我有兩個:

enter image description here

+0

作爲raheel的開幕詞一樣傻,是,他確實有這部分的權利:「現在右鍵點擊你的根圖片的文件夾,即‘圖像’選擇屬性選擇安全添加用戶使用網絡服務,並給它FULL。該文件夾的權限權限。「您還沒有設置上的圖像文件夾的權限,所以你不能寫文件,創建文件夾等 –

+0

actualy我這樣做,如果你檢查後的編輯我跟着HES instuctions但它沒有工作 –

+0

是的,我錯過了那。抱歉。 IIS 6運行的默認值是網絡服務。我從不打擾修改AppPool身份。我通常所做的就是設置文件夾權限。您可能還需要檢查Images文件夾屬性的「寫入」複選框,但我發現文件夾權限通常足夠。 –

回答

2

簡單地說,當你的asp.net應用程序運行您可以打開任務管理器並查找進程w3wp。 W3wp過程與其他任何人一樣具有用戶標識(默認情況下 - 應用程序池標識 - DefaultAppPool(如應用程序池名稱))。 如果是這樣,您應該爲名爲DefaultAppPool的用戶添加寫入權限。要做到這一點,你應該打開文件夾屬性窗口中的安全標籤,然後change - >add和類型IIS AppPool/DefaultAppPool並選擇本地機器。

This後應該幫助你!

0

這跟IIS兄弟沒什麼關係。所有你需要做的是,打開你的IIS。去Application Pool。右鍵單擊您的網站正在運行的應用程序池。選擇「高級設置」並查看針對IDENTITY所做的輸入。將其更改爲使用NetworkService。這意味着您將在NETWORK SERVICE帳戶下運行您的網站。

現在右鍵單擊根圖像文件夾,即「圖像」。選擇PROPERTIES。選擇SECURITY。添加用戶NETWORK SERVICE,併爲該文件夾授予FULL RIGHTS權限。

現在只要您創建根據本「圖片」文件夾和文件通過您的代碼文件夾,它會自動繼承其父的權限,你可以讓你做任何你想要的(添加/刪除)。

我希望這能回答你的問題。如果是,請將其標記爲「已回答」。

+3

「這與IIS無關,兄弟,所有你需要做的就是打開你的IIS ......」因此,IIS沒有做的事情的第一步是打開IIS並更改設置?尼斯:) –