2013-07-12 71 views
0

我有一個文件夾,我想在這個文件夾中的一些進程就像解壓並讀取一個文件。這是完美的這一部分,但我有這樣的一個錯誤,當試圖打開asp.net文件夾:如何解決「訪問路徑被拒絕」錯誤?

Error: System.UnauthorizedAccessException: Access to the path 
    \\101.101.101.126\d$\abc\abc\abc' is denied. 
     at System.IO.__Error.WinIOError(Int32 errorCode, 
     String maybeFullPath) at System.IO.Directory.InternalGetFileDirectoryNames(String path, String 
    userPathOriginal, String searchPattern, Boolean includeFiles, 
     Boolean includeDirs, SearchOption searchOption) at 
     System.IO.Directory.GetFiles(String path, 
     String searchPattern, SearchOption searchOption) at GetEmailReport.GetEmailCampaignDeliveryStatusReportViaFtp() in 
      c:\abc\abc\abc.cs:line 120 

我改變文件夾權限ISS用戶,Asp.Net和別人,但我有一些犯錯。如何解決這個錯誤?

+0

你有沒有到該計算機的管理員訪問權限? (您需要它來訪問d $)當您從Windows資源管理器打開目錄\\ 101.101.101.126 \ d $ \ abc \ abc \ abc時,您會遇到錯誤,或者您看到文件?你可以在這裏粘貼你的代碼的一部分(沒有錯誤)接近120行,你如何使用GetFiles?嘗試一種不同的方法..就像訪問命名共享,如\\ 101.101.101.126 \ incom(如果有的話)。你使用什麼操作系統? – Atiris

+0

我的代碼工作我的本地機器,但是當我添加服務器,我有這個錯誤。 – Bip

+0

您無法以此方式訪問服務器(\\ 101.101.101.126 \ d $)。這種類型的共享(admin共享)僅適用於本地網絡中的Windows文件夾共享。如果您的文本中的ISS是Microsoft的Internet信息服務的快捷方式,則使用IIS,並將其用作標籤。我對IIS不太瞭解。 – Atiris

回答

0

的用戶,其帳戶用於運行應用程序,必須具有對路徑訪問

有2種方式來實現這一目標:

  1. 配置爲您的應用特殊的應用程序池,它將在具有必要權限的用戶下運行(可以訪問遠程服務器上的管理員共享)。因此,您的整個應用程序將在該帳戶下運行,並具有其所有權限。

  2. 使用模擬在另一個帳戶下執行代碼的一部分。這不需要任何IIS配置,並且比第一種方式更安全和靈活(例如,您可以在單個應用程序中模擬多個帳戶)。

我使用一個輔助類用於此目的:http://pastebin.com/HQWT7yFX(找不到原作者,所以這是我稍作修改的版本)