2013-02-28 32 views
0

我一直在這裏通過其他項在stackoverflow但沒有一步一步的方式來解決這個問題?這是複雜的嗎?如何解決「訪問路徑被拒絕的asp.net」

我想解壓縮到我的本地驅動器上的文件夾,也得到這個錯誤。我必須在我的webconfig中做些什麼?

我應該只是寫訪問整個我的C驅動器?那不會很好?

感謝

public ActionResult Upload(ScormUploadViewModel model) 
{ 
    if (ModelState.IsValid) 
    { 
    if (model.ScormPackageFile != null) 
    { 
     //string destinationDirectoryName = "c:\\TSFPreview\\Zinc\\Web\\Project\\ScormPackages"; 
     string zipCurFile = model.ScormPackageFile.FileName; 
     //string origZipFileName = zipCurFile.Remove(zipCurFile.Length - model.ScormPackageFile.FileName); 
     string destinationDirectoryName = Path.GetFileNameWithoutExtension(zipCurFile); 
     //Directory.CreateDirectory(destinationDirectoryName); 
     Directory.CreateDirectory("C:\\Testing"); 
     StreamReader streamReader = new StreamReader("C:\\Testing"); //here get that error 
     streamReader.Read(); 
     using (GZipStream Decompress = new GZipStream(model.ScormPackageFile.InputStream, CompressionMode.Decompress)) 
     { 
      //Decompress.CopyTo("C:\\Testing"); 
     } 
    } 
    } 
    return View(model); 
} 
+0

你能分享一些代碼嗎? – 2013-02-28 13:37:47

+0

好吧,現在因爲這是一個MVC應用程序,我猜這是在IIS上託管的。你能檢查這個應用程序使用的應用程序池標識嗎?並且該用戶是否有權限執行文件IO? – 2013-02-28 13:51:26

+0

請幫助我如何檢查?我不知道對不起 – 2013-02-28 13:52:51

回答

0

太長評論,因此張貼一個答案 -

打開IIS,請按照本post的說明。這告訴你如何檢查應用程序池標識。

默認情況下,asp.net應用程序在具有最小權限的帳戶下運行,並且被拒絕寫入c:\ location的權限。

將應用程序池標識更改爲使用具有創建目錄所需權限的本地帳戶等您正在嘗試的操作。 (您可以通過將您的登錄名置於應用程序池標識中進行測試,但不建議用於已部署的代碼)。

+0

我該如何打開IIS管理控制檯?請 – 2013-02-28 14:02:27

+0

轉到運行並鍵入'inetmgr'。按Enter鍵。或者,您也可以瀏覽 - 控制面板 - >管理工具 - > Internet信息服務 – 2013-02-28 14:04:37

+0

我瀏覽到管理工具並且不在列表中找到IIS? – 2013-02-28 14:07:18