AS A NOTE – WEB DEPLOY IS MUCH BETTER THAN FTP PUBLISHING - Just letting you know
This is my quick guide ( i.e. how i did it) on how to get FTP Publishing working on a Amazon Instance Website.
- Install FTP Publishing using the Microsoft Web Platform Installer
- Under the IIS Manager, go to the server and run through the FTP items one by one:
- FTP Authentication – I just used basic authentication, but you can roll your own.
- Authorization Rules – I added a “Allow All Users Read Write”. You can be more exclusive
- Firewall support
- Specify a Data channel range. I used 28000 –> 28100
- Leave the external IP address empty. Seems to work well
- SSL Settings – Choose your certificate and allow SSL connections (Used with Explicit SSL over FTP)
- User Isolation – I have this set to FTP root directory
- Setup the Windows Firewall to allow the SSL connections to actually connect by running this command (credit for this tip goes to learn.iis.net)
netsh advfirewall firewall add rule name="FTP for IIS7" service=ftpsvc action=allow protocol=TCP dir=in
- Log into the Amazon Instance Manager or use Elastic Fox for Firefox (which is pretty cool) to access the security groups
- Add FTP port 21 with host 0.0.0.0/0
- Add the port range that you added before (e.g 28000 –> 28100) and set the host to 0.0.0.0/0
- Add FTP publishing to a specific site
- Right click one of your sites in the IIS manager and select “Add FTP Site Publishing”
- Add a virtual host name if you feel the need, or require it to differentiate.
- Customise at will or let the server defaults handle the settings, then click Finish
- Log into the site using a Windows login and a good FTP client (e.g. like Filezilla) with the servertype as “FTPES – FTP over Explicit TLS/SSL” or if that doesn’t work, try just plain ol’ FTP (not recommended with a Windows Login). Hopefully there is no issue. If there is let me know what happens or how you fixed it if you did.
I don’t see an option anywhere in Elasticfox or the AWS console to add an FTP port, am I missing something?
Security Groups -> Group Permissions then click the green button and add the port