ASP.NET - 将文件复制到映射的网络驱动器

时间:2012-04-02 11:56:11

标签: asp.net file copy mapped-drive

我正在尝试将文件从C驱动器上的某个位置复制到映射的网络驱动器(Z),即\ address \ content \

但是我收到以下错误消息:

System.UnauthorizedAccessException: Access to the path '\\192.168.100.227\content\2-Banner-20120402120304.png' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Admin.Controllers.OffersController.UploadNewFiles(OfferModel offer)

我已检查目录的安全设置,我可以看到以下用户对该文件夹具有完全访问权限

  • IUSER
  • SYSTEM
  • 网络服务
  • 机架
  • steven.wade
  • 管理员
  • 用户

为什么我无法通过ASP.NET复制他们的任何想法?

史蒂芬

2 个答案:

答案 0 :(得分:0)

标记表示映射的驱动器并且不能正常工作,因为这些用户没有映射这些驱动器(它不是系统范围的设置)。

即使这不使用映射驱动器但是共享它真的是一个坏主意,我之前做过的是使用FileSystemWatcher类实现FileWatcherService并使用api复制,服务作为已知的DOMAIN用户运行,并且具有所有权限。就像将文件放入受监控目录一样容易,您的服务可以在验证副本后清理该文件,对我来说似乎有点整洁。

您甚至可以将文件写回另一个目录并监控该文件以检查其是否已被复制:)

答案 1 :(得分:0)

您正在将文件从一台计算机复制到另一台计算机,但NETWORK SERVICE是本地帐户,这对两台计算机都不同。因此,您需要一个域帐户来运行您的工作进程。