我这里遇到了一个相当意外的情况。我有一个小应用程序,它使用标准 WebDAV Windows 客户端(WebClient 服务,“桌面体验”功能的一部分)连接到 WebDAV 服务器(Sharepoint),浏览多个文件夹并下载它找到的所有 PDF 文件。
整个过程正常。但是,我遇到了一个奇怪的问题:当我直接从服务器的控制台或 RDP 桌面运行应用程序时,它大约需要 10 秒才能运行(假设没有文件要下载)。当我从同一用户但从计划任务运行相同的任务时,它需要 5 分钟才能完成并产生完全相同的结果(如果存在文件,则会下载)。
我已将调试添加到应用程序中以查看延迟发生的位置,结果是列出文件目录的操作似乎需要很长时间,即使使用的文件过滤器导致没有文件返回。使用 ProcMon 时可以观察到相同的行为:延迟在 Win32 调用内以及应用程序之外。
现在,这并不是很关键,因为该过程有效,但是添加的目录越多,它就越慢,并且到某个时候我将不得不降低脚本运行的频率,以便它能够真正完成(或更改应用程序以便它开始并行处理目录)。
有人可以解释为什么 WebDAV 客户端在执行计划任务时似乎慢了几个数量级吗?
如果有必要,每次连接都会使用明确的密码并通过 SSL 进行。