【问题标题】:FTPWebRequest.GetResponse timeout on server, not on local debug服务器上的 FTPWebRequest.GetResponse 超时,而不是本地调试
【发布时间】:2015-01-08 14:08:27
【问题描述】:

我创建了一个 Azure 云服务,它从 FTP 服务器下载文件,然后将它们上传到 Azure 存储。 当我调试我的服务时,一切正常,文件被上传到存储中。发布服务后,我收到一个错误(并非总是如此,但 5 次尝试的 4 次): “System.Net.WebException:操作已超时。” 错误的行号对应的行

Dim response As FtpWebResponse = CType(request.GetResponse, FtpWebResponse)

为什么它可以在本地调试而不是从云端运行? 有关信息,没有代理或什么。它似乎以随机的方式工作。 我的代码的一部分:

 'Request
    Dim request As FtpWebRequest = CType(WebRequest.Create(Configuration.Address + suffixPath), FtpWebRequest)
    request.Method = WebRequestMethods.Ftp.DownloadFile

    'Login and pwd
    request.Credentials = New NetworkCredential(Configuration.Login, Configuration.Password)
    request.UsePassive = False
    request.KeepAlive = True
    request.Timeout = Integer.MaxValue
    request.ReadWriteTimeout = Integer.MaxValue

    Try
        Dim response As FtpWebResponse = CType(request.GetResponse, FtpWebResponse)
        Dim stream As Stream = response.GetResponseStream
...

谢谢大家

--- 编辑 ----

我找到了这篇文章: http://feedback.azure.com/forums/217313-networking-dns-traffic-manager-vpn-vnet/suggestions/3346609-icmp-support-for-azure-websites-roles-cloud-serv

建议为 Azure 虚拟机、服务添加 ICMP 流量...

我尝试从我的 Azure 云服务到我的 FTP 服务器进行简单的 ping 测试,超时为 30 秒,我立即收到...超时错误。

您认为这可以解释我的问题吗? 如果是这样,有没有办法通过 UDP 或其他方式从 ftp 下载文件?

【问题讨论】:

    标签: vb.net azure ftp timeout ftpwebrequest


    【解决方案1】:

    我终于找到了解决问题的方法。

    Azure 虚拟机或服务内的 ICMP 流量限制就是问题所在。

    所以,我只是使用 WebClient 对象来下载我的文件。

    Dim webclient As New WebClient
    webclient.Credentials = New NetworkCredential(login, password)
    Dim bytesData As Byte() = webclient.DownloadData(addressOfFTPServer + fileNameToDownload)
    Return bytesData
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2020-08-14
      • 2012-05-19
      相关资源
      最近更新 更多