I need to move a site off of IIS6 (Win Server 2003) and onto IIS7.5 (Win Server 2008) as soon as possible. Preferably tomorrow.
The site itself is a delightful mix of classic asp (vbscript) and one-off asp.net (C#) applications (each asp.net app is in its own virtual dir and has a self-contained web.config).
In case it's relevant, this is a sort of research site made up of 40 or 50 unconnected microsites. Each microsite is typically a simple form allowing a user to submit a form, which then runs a Stored Proc on a sqlserver db and displays a chart and/or table of the results.
There is very little security to worry about. The database connection info is in a central file (in the case of the classic asp) or app's individual web.config (lots of duplication there)
To add a little spice to the exercise...
- I have no idea how to admin IIS
- The company no longer employs the sysadmin or the guys who set this thing up. (They're not going to employ me much longer either but my sense of professional pride does not permit me to just walk away from this task).
- The servers are on mutually firewalled networks and I have to perform a convoluted, multi-step process to copy anything from one to the other.
Would someone please point me to a crash-course tutorial for accomplishing the above?
I have:
- a complete copy of the site's filesystem on the new box
- installed the 3rd party charting tool on the new system
- a config.xml file from the "all tasks -> save configuration to a file" right click menu. There doesn't seem to be a way to import it on the new system however.
The newer IIS manager has a completely different UI and I'm totally lost.
Please help.
Making somes progress thanks to TristanK's comment
- Install msdeploy (complete) on IIS6 Server
Assume example config is sane so replace the default empty msdeploy.exe.config with msdeploy.exe.configsettings.example
Get site ID
- open IIS6 Manager
- select "Websites" from tree in left pane
- ID is one of the columns (my site is 1894277648)
Open Web Deploy console window
Start menu >> Programs >> IIS 7.0 Extensions >> Web Deploy Commandline
Get site dependencies
C:\Program Files\IIS\Microsoft Web Deploy V2>msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1894277648 >research-dependencies.xml
Note:
- use of site ID 1894277648)
I assume this is xml. Don't really care though
- Package site
C:\Program Files\IIS\Microsoft Web Deploy V2>msdeploy -verb:sync -source:metakey=lm/w3svc/1894277648 -showSecure -dest:package=research.zip > research.log
Copy files to IIS7 server
Backup IIS7 server
See what backups we already have C:\Windows\System32\inetsrv>appcmd list backup BACKUP "CFGHISTORY_0000000006" BACKUP "CFGHISTORY_0000000007" BACKUP "CFGHISTORY_0000000008" BACKUP "CFGHISTORY_0000000009" BACKUP "CFGHISTORY_0000000010" BACKUP "CFGHISTORY_0000000011" BACKUP "CFGHISTORY_0000000012" BACKUP "CFGHISTORY_0000000013" BACKUP "CFGHISTORY_0000000014" BACKUP "CFGHISTORY_0000000015"
Make new backup
C:\Windows\System32\inetsrv>appcmd add backup "Backup before trying msdeploy migrate from IIS6 server" BACKUP object "Backup before trying msdeploy migrate from IIS6 server" added
Check that it regestered C:\Windows\System32\inetsrv>appcmd list backup BACKUP "Backup before trying msdeploy migrate from OLD-IIS6 server" BACKUP "CFGHISTORY_0000000006" BACKUP "CFGHISTORY_0000000007" BACKUP "CFGHISTORY_0000000008" BACKUP "CFGHISTORY_0000000009" BACKUP "CFGHISTORY_0000000010" BACKUP "CFGHISTORY_0000000011" BACKUP "CFGHISTORY_0000000012" BACKUP "CFGHISTORY_0000000013" BACKUP "CFGHISTORY_0000000014" BACKUP "CFGHISTORY_0000000015"
- Deploy site to IIS7 server
Set up application pools listed in research-dependencies.xml
Install 3rd-party charting tool
first try with "whatif" flag
msdeploy -verb:sync -source:package="D:\temp\website\research.zip" -dest:metakey=lm/w3svc/1 -replace:match="I:",replace="D:" -whatif > WebDeploySync.log
Note: - lm/w3svc/1 -> "1" - -replace flag to handle changed drive letter
Now try for real
msdeploy -verb:sync -source:package="D:\temp\website\research.zip" -dest:metakey=lm/w3svc/1 -replace:match="I:",replace="D:" > WebDeploySync.log
** Still TODO **
Deal with web.config (?) problems HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid
fix database connection strings in asp config file and in each web.config
? copy httpodbc.dll to windows\system32\inetsrv ?
Check that isapi (?) perl points to correct drive letter
Manually check that each of the 50 or so reports "works" (for some value of "work")