.net Windows服务可以';无法复制到文件共享
我有一个windows服务集,用于将文件从本地目录复制到samba共享 该服务通过UNC路径连接到服务器(即.\remoteserver\shareddir) 我已经以运行服务的用户身份登录,并且能够使用UNC路径在samba共享上复制文件和创建文件 但是,当运行该服务时,我会收到io异常,提示登录错误。我在那个盒子上运行了process monitor,观察服务,我可以看到它找到了UNC路径,但在尝试写入共享时出现了登录错误 这是使用普通的.net System.IO.File.Copy调用 我不理解这些错误,因为当在同一个用户下登录时,我可以在共享上复制和创建文件 有什么想法吗 编辑:异常文本 主处理循环中的错误 (DoWork()):登录失败:未知 用户名或错误的密码 系统异常:上的错误 MyService.processExportTransferFileDirectory 和值:D:\Export, \远程服务器\intray, D:\Export\Archive--> System.IO.IOException:登录失败: 未知的用户名或错误的密码 在 System.IO.\uu错误.WinIOError(Int32 错误代码,字符串maybeFullPath)位于 System.IO.\uuu Error.WinIOError()位于 System.IO.File.Move(字符串 sourceFileName,String destFileName).net Windows服务可以';无法复制到文件共享,.net,file-io,windows-services,networking,samba,.net,File Io,Windows Services,Networking,Samba,我有一个windows服务集,用于将文件从本地目录复制到samba共享 该服务通过UNC路径连接到服务器(即.\remoteserver\shareddir) 我已经以运行服务的用户身份登录,并且能够使用UNC路径在samba共享上复制文件和创建文件 但是,当运行该服务时,我会收到io异常,提示登录错误。我在那个盒子上运行了process monitor,观察服务,我可以看到它找到了UNC路径,但在尝试写入共享时出现了登录错误 这是使用普通的.net System.IO.File.Copy调用
在 MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile(字符串 sourceFolder,字符串targetFolder, 字符串归档文件夹,字符串 根文件夹,日志类别,日志类别, 日志计数器日志计数器)--结束 内部异常堆栈跟踪---在 MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile(字符串 sourceFolder,字符串targetFolder, 字符串归档文件夹,字符串 根文件夹,日志类别,日志类别, 日志计数器(日志计数器) MyService.Consumer.BusinessLogic.WmsFacade.ProcessExportTransfer(IDictionary`2 文件目录)在 MyService.Core.TimedWorkerProvider.DoWork()
在您的情况下,一个非常有用的工具是。只需以管理员身份运行它并添加以下筛选器:
Process Name is "your_process.exe" AND Operation is "CreateFile"
您将看到有关进程尝试使用的文件的详细信息。我建议先映射驱动器,然后将文件复制到映射的驱动器,而不是共享驱动器 您可以使用dos net use命令映射驱动器。例如:
System.Diagnostics.Process.Start("net", "use h: \remoteserver\shareddir /User:domian\me password")
这将解决任何登录问题
如前所述,当我使用
与该服务使用的帐户相同
以身份运行时,我在复制方面没有问题
在共享上创建和创建文件
一分钟前被杀
您是否已在本地安全策略中将服务作为“登录为服务”权限授予正在运行的用户帐户???它最终成为一个权限问题-在以另一个用户的身份运行服务(该用户是在samba共享上安装的)后,该服务在运行时没有出现问题,复制了多个文件
仍然不明白为什么当使用其他帐户时,我可以使用windows资源管理器在共享上复制/创建文件,但当服务在同一帐户下运行时,它根本无法访问共享:(请发布您看到的异常。您的服务使用的是域帐户还是本地帐户?谢谢-我确实在运行它,结果是一样的。无法使用映射驱动器,因为服务不支持这种用法。我有其他服务以同样的方式设置(它们做其他工作)-它们的启动和运行都没有问题,因此我没有查看此权限。将进行检查。已检查,是的,用户帐户确实具有这些权限。