您好,我正在使用 WebRequest 的异步成员将文件上传到 IIS ftp 服务器。
我可以成功上传两个文件。然而,第三个文件上的 BeginGetResponse 从未调用我的回调例程!
有什么想法欢迎吗?
谢谢,
约翰
最佳答案
一些想法:
- 同步发出请求,看看问题是否消失。如果不是,则开始仔细查看第三个文件(是 HUUUUUUUUUGE 吗?)
- 确保您明确调用了FtpWebRequest.EndGetResponse()在您的回调处理程序中,然后在响应中调用 Close() 。否则,您将冒着让连接保持打开状态的风险,并且可能会遇到客户端、服务器或代理连接限制。
- 如果您已经在做这些事情,请安装网络嗅探器,例如 Network Monitor 3.3看看电线上到底发生了什么。您将能够在那里看到任何错误。
- 如果您发现错误,请进行追踪。如果您从未真正看到第三个请求通过网络,请将客户端连接限制视为罪魁祸首。如果您看到第三个请求通过线路传输,但没有响应,请查看服务器问题,例如在 M 秒内限制来自同一客户端的 N 个请求——并尝试在每个请求后延迟,看看是否可以避免这种情况。
关于.net - FTPWebRequest上传文件只会上传两个文件!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502962/