Tuesday, July 1, 2008

Installing IIS FTP7 in a shared config

Since microsoft didn't ship FTP 7 on the windows 2008 disks, you have to uninstall the FTP 6 you installed during setup. Then you need to download the x86 or x64 version from here

http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1619 (x86)
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1620 (x64)

Easy enough to install, unless your using a shared config IIS web farm. Now if you have no data in your shared config, no big deal, unless you're me and have completed the migration of a number of sites over to this shared config already and your doing FTP as a "last step" setup. So when you install FTP7, it says you can't be in a shared config, so you take the machine out of shared mode, install FTP7, add it back in, and you do this for all the machines in your shared config. However when your done, you don't have the option to "create FTP site" under your "Sites" tab. I also noticed in my System log the following error: Source: FTPSVC EventID: 30 "the FTP Service encountered an error trying to read configuration data from the file "\\?\UNC\servername\sharename\applicationHost.config, line number 0. The error message is: The configuration section 'system.ftpServer/providerDefinitions' cannot be read because it is missing section declaration. blah blah blah

So what this all means is that because I pulled my nodes out of the shared config one by one, then installed FTP7 on them, FTP7 modified the local config, then was never published those changes back to the shared config files, therefore the FTP Service doesn't work and I can't create FTP sites because the shared config doesn't know we have FTP7 installed. So a step by step on how to fix this follows.

1) Uninstall FTP6(on windows 2008 cd if you installed it) & FTP 7 if you've installed it already

2) Pull all your nodes out of the shared config 1 by 1, make sure you choose the option to copy the shared profile locally. This will keep your 'same config' and your sites wont experience an interruption during the modification process (assuming you have NLB or ISA-NLB or another load balancing option setup correctly).

3) Pick a node you like that has the shared config now copied locally. Install IIS FTP7 to that node. Make sure to restart IIS and your IIS Manager app, verify when you right click sites you have the option to "Add FTP Site...".

4) Move your shared config files somewhere else, leave the directory empty.

5) go into the "shared config" page again, choose "export configuration" and follow the normal steps and now make a new shared config. (just a hint, to make a encryption key that works, you need upper, lower, number and symbol). restart IIS and IIS Manager just for fun.

6) on all your other nodes, install FTP7, and add them back into the shared config.

That's about it, it should work for you.

No comments: