【问题标题】:Error while creating folder in remote server在远程服务器中创建文件夹时出错
【发布时间】:2011-09-30 05:15:51
【问题描述】:

您好,我有一个用于在 .net 中的远程服务器中写入文件的代码。当我将输出路径保留为本地驱动器时 - 代码工作正常并创建文件夹和文本文件。但是当我指向远程服务器时,出现以下错误:

System.UnauthorizedAccessException: Access to the path '\\ServerName\FolderTest\FolderTest1\AB.txt' is denied.
 at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
 at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
 at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
 at ...

如果您需要更多信息,请告诉我

【问题讨论】:

  • 必问问题:您是否有权创建文件夹/文件?
  • 要添加到@Bobby 的评论中,远程操作时您是否有权限。即您可以在本地系统上打开资源管理器,导航到 \\ServerName\FolderTest\.... 并创建一个文件夹/文件吗?
  • @James Deville:是的,我可以从资源管理器中打开该文件夹,并且该文件夹是共享的
  • 你能打开和创建吗?创建是与列表文件不同的权限

标签: c# .net file-permissions


【解决方案1】:

您可能需要在要保存文件的文件夹上为正确的用户设置权限。 这篇文章可能会给你答案:

Link - System.UnauthorizedAccessException

【讨论】:

    【解决方案2】:

    您在哪个环境中执行您的代码? Winforms、Web 表单还是 Win 服务?
    对于所有这些情况,有不同的方法来解决这个问题:

    • WinForms - 默认情况下,您的代码在您的凭据下执行,因此您的帐户必须具有远程服务器上 creatif 文件夹的权限。
    • WebForms - 那么您的代码默认在本地 IIS 用户下执行,如果您使用 impersonation,则在您的帐户下执行,因此该帐户必须具有远程服务器上 creatinf 文件夹的权限。
    • Win 服务 - 然后您的代码在本地服务、本地机器、网络服务或此服务的某些用户 (look here for more info) 下执行,因此此帐户必须具有远程服务器上 creatif 文件夹的权限。

    【讨论】:

    • 因此请检查 iis 帐户或启用模拟以提供来自 Windows 的用户访问权限。
    【解决方案3】:

    代码现在可以正常工作了。问题是访问权限。我的代码写入文件夹的凭据未添加到文件夹安全选项卡中。添加到它之后。有效。感谢@James Deville、@VMAtm 和 @Razvan Panda :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 2021-08-23
      • 2013-06-14
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 2016-09-26
      相关资源
      最近更新 更多