调用 WebDAV "Network" 共享结果 "Network Path was not Found"

Calling a WebDAV "Network" Share results in "Network Path was not Found"

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

例如:

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

然而,有时(看似零星)这个 returns "network path was not found"。当我远程访问服务器并检查共享时,代码神奇地开始工作。

这是怎么回事?

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

默认情况下,此服务是“WebClient”服务 - 有些服务器甚至没有默认安装此服务(您可以通过添加 "Desktop Experience" 服务器管理器中的功能)。

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

您可以通过几种方式解决这个问题 - 我通过将 WebClient 服务设置为“Automatic”来解决它,但您也可以从内部检查服务 status/start 服务使用 ServiceController class.

的 C# 代码