Deploying .NET 4.5 web app with Web Deploy
Asked Answered
A

4

11

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!

Antares answered 10/10, 2012 at 13:2 Comment(1)
Feel free to post an answer to yourself.Bartle
A
5

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.

Antares answered 19/10, 2012 at 10:13 Comment(0)
T
11

You can try adding this property to the project:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>
Thrill answered 20/7, 2013 at 20:53 Comment(1)
... or pass this to MSBuild (for CI, etc.) ... /P: IgnoreDeployManagedRuntimeVersion=TrueTypescript
A
5

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.

Antares answered 19/10, 2012 at 10:13 Comment(0)
F
2

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

Frankfrankalmoign answered 23/11, 2013 at 19:51 Comment(0)
P
1

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

Paperboy answered 1/4, 2015 at 9:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.