Steffen Jørgensen
Steffen Jørgensen

Reputation: 312

Migrating Umbraco 4.7.1 from IIS6 to IIS7

I have taken over an Umbraco (version 4.7.1) installation from a previous coworker. The server hosting the application must be shut down and therefore I'm migrating the application to a new server.

The old server is running IIS6, but the the new server is running IIS7.5. When I try to open the site on the new server, I get a "Object reference not set to an instance of an object" exception. The YSOD does not provide much info on what's going wrong (see below).

Exception shown on load

When I run the application locally in Visual Studio it works like a charm. Do any of you have a clue to what is going wrong?

Upvotes: 0

Views: 502

Answers (3)

Digbyswift
Digbyswift

Reputation: 10400

Just riffing on some of @Pronotion's suggestions ... I have occasionally had issues installing apps on new server instances and have had to reinstall IIS. It's a single command line: aspnet_regiis -i

Also from your screenshot, it looks like you are running a .Net 4 app pool. Umbraco 4.7.1 should be running under .Net 2 Classic app pool as far as I remember.

Upvotes: 0

ProNotion
ProNotion

Reputation: 3692

Can I suggest that you take a clean web.config from the Umbraco 4.7.1 archive and try that first. You can download v4.7.1 from this unofficial archive http://code.leekelleher.com/umbraco/archive/

Merge your customisations into the web.config e.g. connection string and give that a go as I suspect your web.config is not migrated to IIS7.

I wrote a blog post a few years ago about migrating web.config files from IIS6 > IIS7 which may be of use if the above advice doesn't help:

http://www.prolificnotion.co.uk/use-appcmd-to-migrate-web-config-from-iis6-to-iis7/

Upvotes: 1

ProNotion
ProNotion

Reputation: 3692

Have you checked that your application pool is running the correct version of the .Net Framework? Also check the pipeline mode you are running - mine run in Integrated mode not Classic.

In the <system.webServer> node of your web.config locate the <modules> node and ensure you have the runAllManagedModulesForAllRequests attribute set to true as that has caught me out a few times. It should look something like this:

 <modules runAllManagedModulesForAllRequests="true">

I suspect the latter advice is the one that will do it for you.

Simon

Upvotes: 0

Related Questions