我尝试在Azure网站上使用FtpWebRequest和EnterpriseDT.Net.Ftp,我希望将一个字节数组从FileUpload传递到另一个FTP站点。
这适用于本地服务器,因此可以在VM上运行,但无法在Azure网站上运行。无可否认,我们正在努力避免添加VM或其他Azure存储帐户的成本。
似乎端口在Azure上被阻止,但它在本地服务器上对我们开放。
[IOException: Failed to connect to XXX.XXX.XXX.XXX:21 within timeout 120000 ms]
EnterpriseDT.Net.StandardSocket.InternalConnect(EndPoint remoteEP, Int32 timeout) +272
EnterpriseDT.Net.StandardSocket.Connect(EndPoint remoteEP, Int32 timeout) +350
EnterpriseDT.Net.Ftp.FTPControlSocket.ConnectSocket(BaseSocket socket, String address, Int32 port) +66
EnterpriseDT.Net.Ftp.FTPControlSocket.Initialize(BaseSocket sock, String remoteHost, Int32 controlPort, Int32 timeout, Encoding encoding) +57
EnterpriseDT.Net.Ftp.FTPClient.Connect(String remoteHost, Int32 controlPort, Int32 timeout) +407
EnterpriseDT.Net.Ftp.FTPClient.Connect() +43
EnterpriseDT.Net.Ftp.FTPConnection.Connect() +456
XXXXX.XXXXX.XXX.XXXXX.FtpUpload(String Id, FileUpload file, String ftpServer, String ftpUsername, String ftpPass, String domainName) +371
有谁知道如何通过.net FtpWebRequest或第三方库实现这一目标?
答案 0 :(得分:0)
如果您使用: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站点的VFS端点(https:// {sitename} .scm.azurewebsites.net)上传文件,这样您就可以使用更可靠的https协议。
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