UserControl
UserControl

Reputation: 15159

Deploying .NET 4.5 web app with Web Deploy

I have a working ASP.NET MVC 3 application. The project is built with VS 2010 and targets .NET 4.0. Now I re-targeted it to .NET 4.5 and successfully recompiled. Trying to deploy it to our test server (Windows 2008 R2 SP1) now fails:

Error Code: ERROR_APPPOOL_VERSION_MISMATCH More Information: The application pool that you are trying to use has the 'managedRuntimeVersion' property set to 'v4.0'. This application requires 'v4.5'. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_APPPOOL_VERSION_MISMATCH.

The server has .NET 4.5 installed but there is no app pool 4.5 (because it's inplace upgrade and as I understand 4.0 pool should be fine). The client machine has VS 2012 and so Web Deploy 3 (was Web Deploy 2 previously). I also installed Web Deploy 3 to the server.

Tried to re-register ASP.NET with aspnet_regiis - no luck.

Why do I get the error and how can I fix it? This is so frustrating...

p.s. Found similar question about RC but it does not help

Update:

Looks like this is a bug Microsoft hasn't fixed since CTP. IgnoreDeployManagedRuntimeVersion property did the trick. What a shame!

Upvotes: 11

Views: 7454

Answers (4)

radicalric
radicalric

Reputation: 11

Register ASP.NET for IIS
a. Run CMD as Admin
b. CD to \windows\microsoft.net\framework\v4.x
c. Aspnet regiis -i

Upvotes: 1

Langeleppel
Langeleppel

Reputation: 238

@kzu: not trying, this will work.

Had the same problem when installing Orchard CMS. Keep targeting v2.0. But find the simple solution: in IIS, on the Application Pools (the list with all application pools), you can find the 2nd setting top right list: "Set Application Pool Defaults.." change there the default from 2.0 to 4.0 et, voila.

Upvotes: 2

kzu
kzu

Reputation: 1871

You can try adding this property to the project:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

Upvotes: 11

UserControl
UserControl

Reputation: 15159

Windows Server 2012 includes .NET 4.5 by default and (when Web server role added) IIS has the following app pools: DefaultAppPool, .NET v4.5, .NET v4.5 Classic that use .NET Framework 4.0 (because 4.5 is inplace upgrade of 4.0). However, if we install .NET 4.5 redistributable on Windows Server 2008 that has .NET 4.0 installed the pools are not renamed: ASP.NET v4.0, ASP.NET v4.0 Classic. And this is the key why Web Deploy fails.

Upvotes: 5

Related Questions