C# Windows服务无法访问UNC路径
我有一个用C语言编写的windows服务,运行在windows Server 2012上。该服务以域用户身份运行,在本地计算机上具有权限,在Isilon SAN上具有共享网络资源的NTFS权限。当以此用户身份以以下格式登录时,我可以访问Windows资源管理器中的共享文件和目录:C# Windows服务无法访问UNC路径,c#,windows,service,unc,C#,Windows,Service,Unc,我有一个用C语言编写的windows服务,运行在windows Server 2012上。该服务以域用户身份运行,在本地计算机上具有权限,在Isilon SAN上具有共享网络资源的NTFS权限。当以此用户身份以以下格式登录时,我可以访问Windows资源管理器中的共享文件和目录: \\isilon\path\to\dir\ 然而,呼吁 System.IO.Directory.Exists() 总是返回false。起初我以为是这样的: 但是,实现解决方案建议您可以使用 System.IO.Di
\\isilon\path\to\dir\
然而,呼吁
System.IO.Directory.Exists()
总是返回false。起初我以为是这样的:
但是,实现解决方案建议您可以使用
System.IO.Directory.GetDirectories()
只访问目录(不检查是否存在)。这只是扔
System.IO.IOException: An unexpected network error occurred.
在同一网络上的另一台服务器(Windows 2008)上运行时,此服务代码也会起作用
真正疯狂的是,如果我重新启动服务器,文件系统调用首先会成功。经过一段时间后,或者从该计算机访问同一文件路径后,编程调用将开始失败,并且永远不会自动再次成功。重新启动服务器可以在很短的时间内解决此问题
我完全被难住了,因为根本不需要重新启动Windows服务器实例。我不知道什么会影响文件共享权限或可访问性。可能与Windows server 2012上新实施的SMB 3.0有关
编辑:好吧,我不是疯了。OneFS的版本(在Isilon SAN上运行的文件系统)与Windows server 2012不明确兼容。尽管它声称与SMB兼容。从OneFS版本6.5.5.14更新到6.5.5.20立即修复了该问题,并且从那时起一直保持稳定