在远程服务器创建文件夹时出现错误。

4

你好,我已经编写了一个在 .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 ...

如果您需要额外的信息,请告诉我。

2
强制性问题:您是否有创建文件夹/文件的权限? - Bobby
补充一下@Bobby的评论,当你远程操作时,你是否有权限进行操作?例如,你能否在本地系统上打开资源管理器,导航到\ServerName\FolderTest...并创建文件夹/文件? - Jim Deville
@James Deville:是的,我能够从资源管理器中打开该文件夹,而且该文件夹也已经共享。 - Sathish
你能打开和创建吗?创建是与列出文件不同的权限。 - Jim Deville
3个回答

1

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

  • WinForms - 然后您的代码默认情况下在您的凭据下执行,因此您的帐户必须具有在远程服务器上创建文件夹的权限。
  • WebForms - 然后您的代码默认情况下在本地IIS用户下执行,或者在使用模拟时在您的帐户下执行,因此这些帐户必须具有在远程服务器上创建文件夹的权限。
  • Win服务 - 然后您的代码将在本地服务、本地计算机、网络服务或某个为该服务提供服务的用户(在此处查看更多信息)下执行,因此这些帐户必须具有在远程服务器上创建文件夹的权限。

1
请检查IIS帐户或启用模拟以提供来自Windows的用户访问权限。 - VMAtm

0

-1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接