我尝试在 Azure 网站上使用 FtpWebRequest 和 EnterpriseDT.Net.Ftp,希望将字节数组从 FileUpload 传递到另一个 FTP 站点。
这适用于本地服务器,因此也适用于 VM,但无法在 Azure 网站上运行。诚然,我们正在努力避免添加虚拟机或额外的 Azure 存储帐户的成本。
该端口似乎在 Azure 上被阻止,但在本地服务器上对我们开放。
[IOException:无法在超时 120000 毫秒内连接到 XXX.XXX.XXX.XXX:21]
EnterpriseDT.Net.StandardSocket.InternalConnect(端点远程EP,Int32超时)+272
EnterpriseDT.Net.StandardSocket.Connect(EndPoint RemoteEP, Int32 超时) +350
EnterpriseDT.Net.Ftp.FTPControlSocket.ConnectSocket(BaseSocket套接字,字符串地址,Int32端口)+66
EnterpriseDT.Net.Ftp.FTPControlSocket.Initialize(BaseSocket sock,字符串remoteHost,Int32 controlPort,Int32超时,Encoding编码)+57
EnterpriseDT.Net.Ftp.FTPClient.Connect(字符串remoteHost,Int32 controlPort,Int32超时)+407
EnterpriseDT.Net.Ftp.FTPClient.Connect() +43
EnterpriseDT.Net.Ftp.FTPConnection.Connect() +456
XXXXX.XXXXX.XXX.XXXXX.FtpUpload(字符串Id, 文件上传文件, 字符串ftpServer, 字符串ftp用户名, 字符串ftpPass, 字符串域名) +371
有谁知道如何通过 .net FtpWebRequest 或第三方库来实现这一点?
最佳答案
如果您使用:ftp://{sitename}.azurewebsites.net,则 Azure 网站的 FTP 端口 (21) 会被直接阻止,要获取该网站的正确 FTP 配置文件,您需要下载其发布设置,在那里您可以找到地址、用户名和密码。
有关获取发布配置文件的信息位于:http://blogs.msdn.com/b/avkashchauhan/archive/2012/06/26/deploying-windows-azure-website-using-visual-studio-web-publish-wizard.aspx
我还建议您使用 scm 站点 (https://{sitename}.scm.azurewebsites.net) 的 VFS 端点来上传文件,这样您就可以使用更可靠的 https 协议(protocol)。
VFS API: https://github.com/projectkudu/kudu/wiki/REST-API#vfs
有关您的 scm 站点的更多信息: http://blogs.msdn.com/b/windowsazure/archive/2014/03/04/windows-azure-websites-online-tools-you-should-know-about.aspx
关于c# - 从 Azure FTP 传输到另一个 FTP 站点时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22528584/