Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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:

  1. a complete copy of the site's filesystem on the new box
  2. installed the 3rd party charting tool on the new system
  3. 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

  1. Install msdeploy (complete) on IIS6 Server

Assume example config is sane so replace the default empty msdeploy.exe.config with msdeploy.exe.configsettings.example

  1. Get site ID

    • open IIS6 Manager
    • select "Websites" from tree in left pane
    • ID is one of the columns (my site is 1894277648)
  2. Open Web Deploy console window

Start menu >> Programs >> IIS 7.0 Extensions >> Web Deploy Commandline

  1. 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

    1. 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

    1. Copy files to IIS7 server

    2. 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"

    1. 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")

share|improve this question
2  
learn.iis.net/page.aspx/427/… instead. –  TristanK Mar 22 '12 at 22:42
    
Be careful. When upgrading IIS sites, I've noticed in the past that some things just WILL NOT work correctly. Options for IIS7 that are available by default will not exist occasionally, or will exist and are unchangeable. I know it's not always possible, but I'd recommend a fresh installation whenever you can, to make sure you're not missing any new features or configurables. –  jski Jul 15 at 15:26

1 Answer 1

Be careful for using virtual directories. The .config files inherit from the main site in a cascading kind of way this could cause confusion.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.