在远程服务器中创建文件夹时出错

时间:2011-07-07 06:54:25

标签: c# .net file-permissions

嗨我有一个代码,用于在.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 ...

如果您需要其他信息,请告诉我

3 个答案:

答案 0 :(得分:1)

您在哪个环境中执行代码? Winforms,网络表格或赢得服务?
对于所有这些情况,有不同的方法可以解决这个问题:

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

答案 1 :(得分:0)

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

Link - System.UnauthorizedAccessException

答案 2 :(得分:-1)

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