FTP无法通过Azure Webjobs连接

时间:2018-11-01 04:13:05

标签: azure azure-webjobs

我已将控制台应用程序部署为Azure上的webjobs,它正在从ftp服务器上获取数据,但是当在本地运行控制台应用程序时,它运行良好,但是当将其部署到Azure上时,在连接到FTP服务器时会引发异常IO异常。

1 个答案:

答案 0 :(得分:0)

我部署了一个Web作业,以通过FTP从kudu获取数据,它在本地工作正常,但无法像您一样在天蓝色的情况下获取数据。

public static void main(String[] args) {
    FTPClient client = new FTPClient();

    try {
        client.connect("url");
        client.login("username", "password");

        if (client.isConnected()) {
            // Obtain a list of filenames in the current working
            // directory. When no file found an empty array will
            // be returned.
            String[] names = client.listNames();
            for (String name : names) {
                System.out.println("Name = " + name);
            }

            FTPFile[] ftpFiles = client.listFiles();
            for (FTPFile ftpFile : ftpFiles) {
                // Check if FTPFile is a regular file
                if (ftpFile.getType() == FTPFile.FILE_TYPE) {
                    System.out.printf("FTPFile: %s; %s%n",
                            ftpFile.getName(),
                            FileUtils.byteCountToDisplaySize(ftpFile.getSize()));
                }
            }
        }
        client.logout();
    } `

根据我的经验,这是由于Kudu Network的限制所致。 Webjob在其沙箱中运行,可以通过Internet访问应用程序的唯一方法是通过已经公开的HTTP (80)和HTTPS (443) TCP端口。

应用程序可以创建一个套接字,该套接字可以侦听来自沙箱中的连接。例如,同一应用程序中的两个进程可以通过TCP套接字相互通信;从沙箱外部传入的连接尝试(即使它们位于同一台计算机上)将失败。这是reference

如果您还有问题,请告诉我。