【问题标题】:How to fix "Access to the path is denied" error?如何修复“访问路径被拒绝”错误?
【发布时间】:2013-07-10 14:40:58
【问题描述】:

我有一个文件夹,我想在这个文件夹中进行一些处理,例如解压缩并读取文件。这部分很完美,但是当我尝试在 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 和其他用户的文件夹权限,但我有一些错误。如何修复此错误?

【问题讨论】:

  • 您对那台计算机有管理员权限吗? (您需要它来访问 d$)当您从 Windows 资源管理器中打开目录 \\101.101.101.126\d$\abc\abc\abc 时,您会收到错误消息,或者您会看到文件?您能否在此处粘贴接近第 120 行的部分代码(不是错误),如何使用 GetFiles?尝试不同的方法......比如访问命名共享,如 \\101.101.101.126\incom(如果有的话)。您使用什么操作系统?
  • 我的代码在我的本地机器上工作,但是当我添加服务器时,我有这个错误。
  • 您不能以这种方式访问​​服务器(\\101.101.101.126\d$)。这种类型的共享(管理员共享)仅适用于本地网络中的 windows 文件夹共享。如果您的文本中的 ISS 是 Microsoft 的 Internet 信息服务的快捷方式,那么请改用 IIS 并将其也用作标记。我对 IIS 了解不多。

标签: c# asp.net permissions directory


【解决方案1】:

帐户用于运行您的应用程序的用户必须有权访问该路径

有两种方法可以实现:

  1. 为您的应用程序配置一个特殊的应用程序池,它将在具有必要权限的用户下运行(可以访问远程服务器上的管理员共享)。因此,您的整个应用程序将在该帐户下运行并拥有其所有权限。

  2. 使用模拟在另一个帐户下执行部分代码。这不需要任何 IIS 配置,并且比第一种方式更安全和灵活(例如?您可以在单个应用程序中模拟多个帐户)。

为此我使用了一个帮助类:http://pastebin.com/HQWT7yFX(找不到原作者,所以这是我稍微修改过的版本)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2019-10-03
    • 2016-11-11
    • 1970-01-01
    相关资源
    最近更新 更多