【发布时间】:2016-09-27 18:57:19
【问题描述】:
更新:我发现这不是 azure 的问题,而是 实际上正在对传入进行白名单的另一方 连接。
我实现了一个服务,它打开和 ftp 连接,将文件上传到远程 FTP 服务器。 代码在我的桌面上运行完美(!),但是如果我将它发布到天蓝色托管云并使用完全相同的参数执行,我会得到 WebException 并显示消息“远程服务器返回错误:(530)不是已登录。' 我在 azure 控制台中没有找到任何相关设置。我也尝试了不同的设置,如开/关保持活动和被动,但结果是一样的。你们知道可能是什么问题吗?
参考代码:
Dim request As FtpWebRequest
request = TryCast(WebRequest.Create($"ftp://{_host}/inventory/{_uploadFilename}"), FtpWebRequest)
request.Method = WebRequestMethods.Ftp.UploadFile
request.Credentials = New NetworkCredential(_username, _password)
request.UsePassive = True
request.UseBinary = True
request.KeepAlive = False
Using fs As FileStream = File.OpenRead(_fileName)
Dim buffer As Byte() = New Byte(fs.Length - 1) {}
fs.Read(buffer, 0, buffer.Length)
fs.Close()
Dim requestStream As Stream = request.GetRequestStream()
requestStream.Write(buffer, 0, buffer.Length)
requestStream.Flush()
requestStream.Close()
Dim response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
Return Ok($"Remote server response: {response.StatusDescription}")
End Using
【问题讨论】:
-
Enable logging 并向我们展示来自您的桌面和 Azure 的日志。
标签: vb.net azure file-upload ftp ftpwebrequest