【问题标题】:Read FTP server from app Hosted in Azure从 Azure 中托管的应用读取 FTP 服务器
【发布时间】:2016-03-14 14:48:45
【问题描述】:

我正在尝试连接我的应用程序以读取托管在我的 FTP 服务器中的文档,我正在使用 FileZilla,我的应用程序托管在 Azure 中。但似乎无法连接。我有一个公共 IP,在 localhost 我的应用程序运行良好,但是当它在线时它失败了。 这是我用来将应用程序连接到我的 FTP 服务器的代码。

public static void getExcelFromFTP(string destinationFile)
    {

        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(@"ftp://100.100.100.0/folder/file.xlsx");

        request.KeepAlive = true;
        request.UseBinary = true;

        request.Credentials = new NetworkCredential(@"username", "password");//FTP Server credentials
        request.Method = WebRequestMethods.Ftp.DownloadFile;




        Stream reader = request.GetResponse().GetResponseStream();
        FileStream fileStream = new FileStream(destinationFile, FileMode.Create);

        int bytesRead = 0;
        byte[] buffer = new byte[2048];
        while (true)
        {
            bytesRead = reader.Read(buffer, 0, buffer.Length);

            if (bytesRead == 0)
                break;

            fileStream.Write(buffer, 0, bytesRead);
        }
        fileStream.Close();

    }

有人可以帮我解决这个问题吗? 提前致谢。

【问题讨论】:

  • 谁托管 ftp 服务器?
  • 我做到了,使用公共IP,我在我用作服务器的计算机上安装了一个fileZilla服务器。
  • 你确定你和外界之间没有防火墙吗?例如没有windows防火墙,没有路由器充当防火墙?试试ftptest.net
  • 我使用协议进行了测试:Explicit FTP over TLS,它向我展示了以下内容:确保您的服务器允许 FTP over TLS 并配置了有效的证书。一些状态防火墙过滤 AUTH 命令。如果是这种情况,请更换有故障的防火墙。
  • 您可能需要在 Azure 管理门户中为 FTP 端口添加一个终结点。您需要允许端口 20 和 21 上的流量。如果应用在 Azure VM 上运行,则将其添加到 VM 设置中。

标签: c# azure web-applications ftp filezilla


【解决方案1】:

我唯一要做的就是确保在将文件附加到电子邮件时正确编写链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2020-12-06
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多