我有一个C#应用程序,它调用WebDAV文件就好像它是一个网络文件共享。
例如:
var file = File.ReadAllText(@"\\server\WebDAVRoot\file.txt");
然而,有时(看似零星地)这会返回“找不到网络路径”。当我远程到服务器&检查共享,神奇地代码开始工作。
这里有什么问题?
答案 0 :(得分:0)
这里的问题是.NET无法访问WebDAV共享,除非WebDAV服务已经已由用户触发启动。
默认情况下,此服务是" WebClient "服务 - 某些服务器甚至没有安装此服务器(您可以通过添加服务器管理器中的"桌面体验"功能来解决此问题。)
在服务器上安装WebDAV后,WebClient 默认设置为"手动(触发开始)"。激活服务的触发器是对WebDAV共享的Explorer调用 - 因此,.NET代码不会触发服务启动。
您可以通过以下几种方式解决此问题 - 我通过将WebClient服务设置为" 自动"来解决此问题。但您也可以使用ServiceController类检查服务状态/从C#代码中启动服务。