PUT Stream 0 Bytes



我正在使用Windows资源管理器来测试我正在适应我们系统的WebDAV实现。该实现使用IIS Express,由Visual Studio 2013启动。我关闭了Windows资源管理器对WebDAV SSL的要求,这样我就可以测试基本身份验证(有效(。

我遇到的问题是DavFile实现的Write方法。我连接到web文件夹,导航到一个子文件夹,然后尝试将JPG文件从计算机硬盘上的文件夹复制到WebDAV子文件夹(使用Windows资源管理器(。

复制文件(854kb(的尝试失败。当我设置一个断点时,我注意到"segment"流("write"方法的输入参数之一(显示了0(零(字节的长度。

有关于如何调试这个问题的提示吗?流中0字节的最可能原因是什么?

以下是关于如何理解问题的一些想法:

  1. 检查服务器日志中是否存在异常。默认情况下,它名为WebDAVLog.txt,位于\App_Data\WebDAV\Logs\文件夹中。这里面有什么例外吗?请检查服务器日志,确保所有请求都成功。

  2. 使用Fiddler工具或任何其他调试代理检查WebDAV请求。虽然所有到达WebDAV服务器引擎的请求都会被记录下来,但如果请求在到达引擎之前失败,您将不会在日志中看到它。通常,如果请求在身份验证阶段失败,就会发生这种情况。

    请注意,要在"localhost"上使用Fiddler捕获请求,在连接到服务器时必须使用"localhost.fidler"而不是"localhost",例如:http://localhost.fiddler:1234.

  3. 排除任何客户端问题。最后,您使用的客户端软件可能存在问题,包括Microsoft miniredirector。尝试从任何其他计算机访问服务器。要想知道问题是在客户端还是服务器端,也可以尝试在ajaxbrowser.com.上重现这个问题

你可以在这里发布WebDAVLog.txt或fiddler日志的一部分,或者将其发送到it Hit,它可能会给出错误的想法。

最新更新