A couple weeks back I moved an Azure Virtual Machine from one subscription to another. Since then, I haven't been able to connect to the FTP sites that were running on it. I finally spent some time today to figure out why.
First, I forgot to change the FTP firewall support in IIS. The IP address of the VM changed, so I needed to update the VM's external IP address here:
Then, I had to change the FTP firewall support for the FTP site itself. (It looks the same, just on the FTP site instead of on the IIS root node.)
Ronald Door has a good walk-through of how to set this up for the first time on a new VM. The problem is, I'd already set it up on the VM, so I thought that I only had to make the configuration changes I've just described.
Flash forward an hour and a lot of swearing later, and I realized one more problem. See, I set up the VM endpoints through the Azure portal when I launched the VM in the new subscription. However, it looks like I configured them incorrectly. And Microsoft updated the portal last week.
I finally decided simply to delete all four FTP endpoints (port 20 and 21 plus my two passive data return ports) and rebuild them. Endpoint setup is on the Endpoints tab of the Virtual Machine cloud service item:
That worked. The FTP spice flows fine now.
I'm troubled that I don't know exactly why it worked, though. The only difference between the current and previous setup is that before, I inadvertently created load-balanced sets for the ports. Since I only have one VM, that may have been my error.