我有一个文件夹,我想在这个文件夹中进行一些处理,比如解压缩并读取文件。这是完美的这部分,但是当我尝试打开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 :(得分:0)
用户(其帐户用于运行您的应用程序)必须能够访问该路径
有两种方法可以实现这一目标:
为您的应用程序配置一个特殊的应用程序池,该应用程序池将在具有必要权限的用户下运行(可以访问远程服务器上的管理员共享)。因此,您的整个应用程序将在该帐户下运行并拥有其所有权限。
使用模拟在其他帐户下执行部分代码。这不需要任何IIS配置,并且比第一种方式更安全和灵活(例如,您可以在单个应用程序中模拟多个帐户)。
我为此目的使用了一个助手类:http://pastebin.com/HQWT7yFX(找不到原作者,所以这是我稍加修改的版本)