FtpDLX.NET throws an error at GetAttributes() from TitanFTP - WeOnlyDo Discussion board

FtpDLX.NET throws an error at GetAttributes() from TitanFTP (wodFtpDLX / wodFtpDLX.NET)

by Vadym, Wednesday, March 08, 2017, 12:59 (2568 days ago)

Good day!

We're using wodFtpDLX.NET component v.1.7.2.205 and recently have faced the issue.
Our program is monitoring the Voip stuff, including the CDR records from Call Managers, and one of our customers has the Titan FTP (where the CDR's are stored). When we're trying to download file and check its attributes, lib then throws the next exception:
--
WeOnlyDo.Exceptions.FtpDLX.TimeoutException: Timeout occured due to inactivity
at WeOnlyDo.Protocols.FTP.GetAttributes()
at WeOnlyDo.Client.FtpDLX.GetAttributes(String RemotePath)
--
Here is the comparison of the CDR files:
[image]
(link to image if inline image isn't displayed)
And as you see, TitanFTP inserts some secondary text to the beginning of the file, so wodFtpDLX can't parse it properly.

I checked the newest version of wodFtpDLX.NET in trial mode and it gives the same error (at that time I've set all the possible permissions to user, so it's not a permissions/security issue).

Is this issue related to FTP server settings ?


Best regards,
Vadym.

FtpDLX.NET throws an error at GetAttributes() from TitanFTP

by Jasmine, Wednesday, March 08, 2017, 13:05 (2568 days ago) @ Vadym

Hi Vadym,

this looks like regular MLSD entry. Any chance we can connect there to duplicate the issue? If it's ok, please send login details to techsupport - at - weonlydo.com

Thanks,
Jasmine.

FtpDLX.NET throws an error at GetAttributes() from TitanFTP

by Vadym, Wednesday, March 08, 2017, 13:30 (2568 days ago) @ Jasmine

Hi Jasmine!

Unfortunately we don't have a possibility to provide the public access.
Though I was able to reproduce this issue on my local workstation. So you can easily do it as well.

Just download the trial version of Titan FTP, leave the default settings, create a test user (with default root dir), set the dir read/download access to default dir and put some test file into it. Then you can try to download it from some test app.

Just in case, I put here the real CDR file which I tested:
cdr_RDOCM1-Cluster_01_201702211938_105290


Best regards,
Vadym.

FtpDLX.NET throws an error at GetAttributes() from TitanFTP

by Jasmine, Wednesday, March 08, 2017, 13:59 (2568 days ago) @ Vadym

Hi.

I used our 1. Simple CS example to connect to freshly installed server, and had no problems listing directory, or downloading any files from it.

Are there any special settings I need to set on the server to duplicate the issue, since 'by default' it just works?

Regards,
Jasmine.

FtpDLX.NET throws an error at GetAttributes() from TitanFTP

by Vadym, Thursday, March 09, 2017, 09:04 (2567 days ago) @ Jasmine

Hmm... that's strange.
We have a simple FtpDLXWrapper which calls the ftpDlx.ListNames(folder); (we don't have a problem with it) and the exception occurs at the next stage - on the first call of method GetAttributes().
Here is a piece of C# code (a bit simplified) from our wrapper:

using WeOnlyDo.Client;

internal class FtpDLXWrapper 
{
  FtpDLX ftpDlx = new FtpDLX();
  
  public FtpDLXWrapper()
  {
    //..
  }

  public void GetAttributes(string file)
  {
      ftpDlx.GetAttributes(fileUrl);
      var size = this.fileSize;
      var modificationTime = this.fileModificationTime;
  }
}

Please try it on you test environment. If it works for you as well, then could you share here the part of code that gets the attributes ?
May be we miss some detail.

Best regards,
Vadym.

FtpDLX.NET throws an error at GetAttributes() from TitanFTP

by Jasmine, Thursday, March 09, 2017, 11:37 (2567 days ago) @ Vadym

Hi Vadym,

I used 'CS 1. Simple' example, put there my hostname/login/password, selecteted protocol.

THen in that sample I added new button and put this code to be executed on it:

Ftp1.GetAttributes("/readme.txt");

and checked out what happens, and if I get proper response. I got back AttributesEvent and was able to read ModificationTime, as example code has it.

Does this work for you?

Jasmine.