调用WebDAV“网络”共享导致“找不到网络路径”

时间:2017-01-11 18:32:09

标签: c# .net windows io webdav

我有一个C#应用程序,它调用WebDAV文件就好像它是一个网络文件共享。

例如:

var file = File.ReadAllText(@"\\server\WebDAVRoot\file.txt");

然而,有时(看似零星地)这会返回“找不到网络路径”。当我远程到服务器&检查共享,神奇地代码开始工作。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

这里的问题是.NET无法访问WebDAV共享,除非WebDAV服务已经已由用户触发启动。

默认情况下,此服务是" WebClient "服务 - 某些服务器甚至没有安装此服务器(您可以通过添加服务器管理器中的"桌面体验"功能来解决此问题。)

在服务器上安装WebDAV后,WebClient 默认设置为"手动(触发开始)"。激活服务的触发器是对WebDAV共享的Explorer调用 - 因此,.NET代码不会触发服务启动。

您可以通过以下几种方式解决此问题 - 我通过将WebClient服务设置为" 自动"来解决此问题。但您也可以使用ServiceController类检查服务状态/从C#代码中启动服务。