我正在努力理解我刚刚编写的webdav客户端应用程序和IIS服务器之间的对话流程。事实上,我需要理解它,因为它可以使用https,但不能使用普通的http,并且服务器被配置为同时接受这两种服务。
首先,"PROPFIND"似乎运行良好。有趣的是,如果我用Fiddler分析HTTP流量,我的程序看不到来自服务器的401响应。。。然后我用Windows Mini重定向器尝试同样的操作,同样的情况也发生了。401的回应似乎没有影响。这与http有关。
然后,下一步是在HttpWebRequest中发送一个带有"PUT"的文件。我的应用程序没有抛出任何错误,甚至没有得到任何响应,它只是无限期地等待它,这实际上就像冻结;然而,在Fiddler或其他网络分析器中,我的应用程序似乎错过了来自服务器的401响应,之后就没有更多的流量了。然后我尝试使用迷你重定向器,同样的401也在那里,但有下面的201响应,文件被上传了。
在我的应用程序中使用https似乎一切都很好。我已尝试使用IIS 6.0、IIS 7和IIS 8.0。它们都被配置为接受非SSL通信。
有人能告诉我为什么我的应用程序看不到401吗?它也在流量与迷你重定向器,但似乎并不麻烦。
此外,有没有任何经验表明,为什么它不能与http一起使用,迷你重定向器可以让服务器接受它,但可以与https一起使用?
远程IIS不喜欢SendChunked=true选项。它似乎不喜欢未知的尺寸。HttpWebRequest方法的代码具有此选项。没有它,它工作得很好。