Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FTP is raising Exception of Timeout but working in FileZilla and WinSCP #1970

Closed
PKYADAV opened this issue Feb 24, 2024 · 3 comments
Closed
Labels
bug Identified as a potential bug proposal Proposal for a new functionality in Ocelot waiting Waiting for answer to question or feedback from issue raiser

Comments

@PKYADAV
Copy link

PKYADAV commented Feb 24, 2024

Hi Team,

Trying to upload FTP but getting timeout exception:

2024-02-24 13:58:48.633 +05:30 [ERR] Error while uploading the file to the server. See InnerException for more info.
FluentFTP.Exceptions.FtpException: Error while uploading the file to the server. See InnerException for more info.
---> System.TimeoutException: Timed out trying to connect!
at FluentFTP.FtpSocketStream.ConnectAsync(String host, Int32 port, FtpIpVersion ipVersions, CancellationToken token)
at FluentFTP.AsyncFtpClient.OpenPassiveDataStreamAsync(FtpDataConnectionType type, String command, Int64 restart, CancellationToken token)
at FluentFTP.AsyncFtpClient.OpenDataStreamAsync(String command, Int64 restart, CancellationToken token)
at FluentFTP.AsyncFtpClient.GetNameListing(String path, CancellationToken token)
at FluentFTP.AsyncFtpClient.FileExists(String path, CancellationToken token)
at FluentFTP.AsyncFtpClient.UploadFileInternalAsync(Stream fileData, Strin2024-02-24 13:59:26.438 +05:30 [ERR] Error while uploading the file to the server. See InnerException for more info.
FluentFTP.Exceptions.FtpException: Error while uploading the file to the server. See InnerException for more info.
---> System.TimeoutException: Timed out trying to read data from the socket stream!
at FluentFTP.FtpSocketStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken token)
at FluentFTP.FtpSocketStream.ReadLineAsync(Encoding encoding, CancellationToken token)
at FluentFTP.Client.BaseClient.BaseFtpClient.FluentFTP.IInternalFtpClient.GetReplyInternal(CancellationToken token, String command, Boolean exhaustNoop, Int32 timeOut, Boolean useSema)
at FluentFTP.AsyncFtpClient.Execute(String command, CancellationToken token)
at FluentFTP.AsyncFtpClient.OpenActiveDataStreamAsync(FtpDataConnectionType type, String command, Int64 restart, CancellationToken token)
at FluentFTP.AsyncFtpClient.OpenActiveDataStreamAsync(FtpDataConnectionType type, String command, Int64 restart, CancellationToken token)
at FluentFTP.AsyncFtpClient.OpenDataStreamAsync(String command, Int64 restart, CancellationToken token)
at FluentFTP.AsyncFtpClient.OpenWriteInternal(String path, FtpDataType type, Int64 fileLen, Boolean ignoreStaleData, CancellationToken token)
at FluentFTP.AsyncFtpClient.UploadFileInternalAsync(Stream fileData, String localPath, String remotePath, Boolean createRemoteDir, FtpRemoteExists existsMode, Boolean fileExists, Boolean fileExistsKnown, IProgress`1 progress, CancellationToken token, FtpProgress metaProgress)
--- End of inner exception stack trace ---

FTP Logs:

2024-02-24 14:04:28.668 +05:30 [INF] > Connect(False)
2024-02-24 14:04:28.676 +05:30 [DBG] FluentFTP 49.0.1.0(.NET 6.0)
2024-02-24 14:04:28.676 +05:30 [INF] Connecting to IP #1= ***:21
2024-02-24 14:04:28.679 +05:30 [DBG] Waiting for a response
2024-02-24 14:04:28.684 +05:30 [INF] Response: 220 Welcome to FTP service. [738939.357d]
2024-02-24 14:04:28.684 +05:30 [INF] Command: USER ***
2024-02-24 14:04:28.684 +05:30 [DBG] Waiting for response to: USER ***
2024-02-24 14:04:28.687 +05:30 [INF] Response: 331 Please specify the password. [2ms]
2024-02-24 14:04:28.687 +05:30 [INF] Command: PASS ***
2024-02-24 14:04:28.687 +05:30 [DBG] Waiting for response to: PASS ***
2024-02-24 14:04:28.733 +05:30 [INF] Response: 230 Login successful. [46ms]
2024-02-24 14:04:28.733 +05:30 [INF] Command: FEAT
2024-02-24 14:04:28.733 +05:30 [DBG] Waiting for response to: FEAT
2024-02-24 14:04:28.737 +05:30 [DBG] Response: 211-Features:
Response: EPRT
Response: EPSV
Response: MDTM
Response: PASV
Response: REST STREAM
Response: SIZE
Response: TVFS
2024-02-24 14:04:28.737 +05:30 [INF] Response: 211 End [3ms]
2024-02-24 14:04:28.737 +05:30 [INF] Text encoding: System.Text.ASCIIEncoding+ASCIIEncodingSealed
2024-02-24 14:04:28.737 +05:30 [INF] Command: SYST
2024-02-24 14:04:28.737 +05:30 [DBG] Waiting for response to: SYST
2024-02-24 14:04:28.740 +05:30 [INF] Response: 215 UNIX Type: L8 [3ms]
2024-02-24 14:04:28.740 +05:30 [DBG] Active ServerHandler is: None
2024-02-24 14:04:28.740 +05:30 [DBG] Listing parser set to: Unix
2024-02-24 14:04:28.740 +05:30 [INF] Command: PWD
2024-02-24 14:04:28.740 +05:30 [DBG] Waiting for response to: PWD
2024-02-24 14:04:28.744 +05:30 [INF] Response: 257 "/" is the current directory [3ms]
2024-02-24 14:04:28.744 +05:30 [INF] > UploadFile("/srv/nidoworkz/nidoimages/167f32cc-4208-4c47-b25a-66829dc5bf50/Vol_500378308208_20240224140001.png", "Vol_500378308208_20240024020002.png", Overwrite, True, Retry)
2024-02-24 14:04:28.744 +05:30 [INF] > FileExists("Vol_500378308208_20240024020002.png")
2024-02-24 14:04:28.744 +05:30 [INF] Command: SIZE /Vol_500378308208_20240024020002.png
2024-02-24 14:04:28.744 +05:30 [DBG] Waiting for response to: SIZE /Vol_500378308208_20240024020002.png
2024-02-24 14:04:28.747 +05:30 [INF] Response: 550 Could not get file size. [3ms]
2024-02-24 14:04:28.747 +05:30 [INF] > DirectoryExists(".")
2024-02-24 14:04:28.748 +05:30 [INF] > OpenWrite("Vol_500378308208_20240024020002.png", Binary, -1, False)
2024-02-24 14:04:28.748 +05:30 [INF] Command: TYPE I
2024-02-24 14:04:28.748 +05:30 [DBG] Waiting for response to: TYPE I
2024-02-24 14:04:28.751 +05:30 [INF] Response: 200 Switching to Binary mode. [3ms]
2024-02-24 14:04:28.751 +05:30 [INF] > OpenDataStreamAsync("STOR Vol_500378308208_20240024020002.png", 0)
2024-02-24 14:04:28.751 +05:30 [INF] > OpenActiveDataStreamAsync(AutoActive, "STOR Vol_500378308208_20240024020002.png", 0)
2024-02-24 14:04:28.751 +05:30 [INF] Command: EPRT |1|192.168.0.201|41479|
2024-02-24 14:04:28.751 +05:30 [DBG] Waiting for response to: EPRT |1|192.168.0.201|41479|
2024-02-24 14:04:28.755 +05:30 [INF] Response: 500 Illegal EPRT command. [3ms]
2024-02-24 14:04:28.755 +05:30 [DBG] Closing/Disposing FtpSocketStream(data connection)
2024-02-24 14:04:28.755 +05:30 [INF] > OpenActiveDataStreamAsync(PORT, "STOR Vol_500378308208_20240024020002.png", 0)
2024-02-24 14:04:28.755 +05:30 [INF] Command: PORT 192,168,0,201,180,193
2024-02-24 14:04:28.755 +05:30 [DBG] Waiting for response to: PORT 192,168,0,201,180,193

@raman-m
Copy link
Member

raman-m commented Feb 24, 2024

@PKYADAV Welcome to Ocelot world! 🐯

Ocelot doesn't support FTP protocol (scheme) officially!

Supported protocols are: http/https and ws/wss
We have no ASP.NET pipeline for FTP(S) protocols.

And the reasons of failed connection are

  • ---> System.TimeoutException: Timed out trying to connect!
  • ---> System.TimeoutException: Timed out trying to read data from the socket stream!

It seems we have a mix of FTP vs Websocks in your user scenario.

Would you like to work on this problem together with us?

Would you like to contribute to add FTP support in Ocelot?


@ggnaegi @RaynaldM FYI

@raman-m raman-m added bug Identified as a potential bug proposal Proposal for a new functionality in Ocelot waiting Waiting for answer to question or feedback from issue raiser labels Feb 24, 2024
@PKYADAV
Copy link
Author

PKYADAV commented Feb 24, 2024

Sorry @raman-m, I posted in wrong repository.

@PKYADAV PKYADAV closed this as completed Feb 24, 2024
@raman-m
Copy link
Member

raman-m commented Feb 24, 2024

🤣

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Identified as a potential bug proposal Proposal for a new functionality in Ocelot waiting Waiting for answer to question or feedback from issue raiser
Projects
None yet
Development

No branches or pull requests

2 participants