我有一个machine 1
,我有一个共享文件夹,
`\\Machine1HostName\Share`
在其中有一个文件夹Files
。
现在我将machine 2
中的文件夹安装在路径下方,
Z:\Files
我有一个window servive
在machine 2
中运行,我试图从路径Z:\Files
中获取文件。
var sourceFiles = Directory.GetFiles(@"Z:\Files").Select(f => new FileInfo(f));
当我以控制台应用程序的调试模式运行window servive
时,没有任何错误,但是当安装并尝试使用local system
帐户运行时,我遇到了错误,
Exception - Could not find a part of the path 'Z:\Files'.
这是完整的堆栈跟踪,
Exception - at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
at System.IO.Directory.GetFiles(String path)
at ConsoleApp6.ConverterService.Start() in C:\Users\source\repos\ConsoleApp6\ConsoleApp6\ConverterService.cs:line 19
注意-如果我将"Z:\Files"
的路径更改为"\\Machine1HostName\Share\\Files"
,则在本地系统帐户下运行服务会出现否错误。
var sourceFiles = Directory.GetFiles(@"\\Machine1HostName\Share\\Files").Select(f => new FileInfo(f));
答案 0 :(得分:1)
如果您使用帐户登录并挂载了共享,则最像您使用另一个帐户来使用该服务,它将不知道此挂载的共享。这样的挂载不是特定于计算机的,而是特定于用户的。
您不需要挂载任何东西,而是直接使用unc路径直接访问共享,例如: \\ somemachine \ somefolder