I've setup the Octopus server and a listening tentacle on an Azure VM. I have an automated build running on Visual Studio Online that creates a package for my web site (via OctoPack) and publishes it to Octopus' built-in NuGet server. That's all working fine, but when I create a release and try to deploy it to my Azure website, the FTP task fails with the following error:
Unable to connect: An I/O exception occurred.
An I/O exception occurred.
EnterpriseDT.Net.Ftp.ControlChannelIOException: An I/O exception occurred.
at EnterpriseDT.Net.Ftp.FTPClient.AJMflaYCwG(FTPControlSocket )
at Octopus.Tentacle.Integration.Ftp.FtpSynchronizer.SynchronizationSession.ConnectAndSynchronize() in y:\work\db516cd4dfb6f424\source\Octopus.Tentacle\Integration\Ftp\FtpSynchronizer.cs:line 99
at Octopus.Tentacle.Integration.Ftp.FtpSynchronizer.SynchronizationSession.Execute() in y:\work\db516cd4dfb6f424\source\Octopus.Tentacle\Integration\Ftp\FtpSynchronizer.cs:line 89
at Octopus.Tentacle.Integration.Ftp.FtpSynchronizer.Synchronize(FtpSynchronizationSettings settings) in y:\work\db516cd4dfb6f424\source\Octopus.Tentacle\Integration\Ftp\FtpSynchronizer.cs:line 16
at Octopus.Tentacle.Procedures.Implementations.Ftp.FtpUploadProcedure.Upload(ProcedureState state, CancellationToken cancel) in y:\work\db516cd4dfb6f424\source\Octopus.Tentacle\Procedures\Implementations\Ftp\FtpUploadProcedure.cs:line 69
at Pipefish.Async.CaptiveThread1.ThreadAction(Action2 action, Guid operationId, IActivitySpace space, Guid captiveThreadId) in c:\TeamCity\buildAgent\work\cf0b1f41263b24b9\source\Pipefish\Async\CaptiveThread.cs:line 114
At first, I thought this was a firewall configuration problem on the Azure VM running the tentacle so I verified that I had opened up ports 20 and 21. Then, I installed FileZilla on the Azure VM and I was able to connect to the web site's FTP endpoint without any problems. I also tried both active and passive modes on the FTP task but hit the same error. Any suggestions on how to proceed?
Also, is there a better way to deploy to an Azure web site?