使用Web Deploy部署.NET 4.5 Web应用程序

Use*_*rol 10 .net asp.net msdeploy iis-7.5 webdeploy

我有一个有效的ASP.NET MVC 3应用程序.该项目使用VS 2010构建,目标是.NET 4.0.现在我将其重新定位到.NET 4.5并成功重新编译.尝试将其部署到我们的测试服务器(Windows 2008 R2 SP1)现在失败:

错误代码:ERROR_APPPOOL_VERSION_MISMATCH更多信息:您尝试使用的应用程序池将"managedRuntimeVersion"属性设置为"v4.0".此应用程序需要'v4.5'.有关详情,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_APPPOOL_VERSION_MISMATCH.

服务器安装了.NET 4.5,但没有应用程序池4.5(因为它是在位升级,因为我理解4.0池应该没问题).客户端计算机具有VS 2012,因此Web Deploy 3(之前是Web Deploy 2).我还在服务器上安装了Web Deploy 3.

试图重新注册ASP.NET aspnet_regiis- 没有运气.

为什么我会收到错误以及如何解决?这太令人沮丧了......

ps发现类似的问题关于RC但它没有帮助

更新:

看起来这是微软自CTP以来没有修复的错误.IgnoreDeployManagedRuntimeVersion财产做了伎俩.多可惜!

kzu*_*kzu 11

您可以尝试将此属性添加到项目中:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>
Run Code Online (Sandbox Code Playgroud)

  • ...或将其传递给MSBuild(用于CI等).../P:IgnoreDeployManagedRuntimeVersion = True (4认同)

Use*_*rol 5

Windows Server 2012默认包含.NET 4.5(当添加Web服务器角色时)IIS具有以下应用程序池:使用.NET Framework 4.0的DefaultAppPool,.NET v4.5,.NET v4.5 Classic(因为4.5是就地升级) 4.0).但是,如果我们在安装了.NET 4.0的Windows Server 2008上安装.NET 4.5可再发行组件,则不会重命名池:ASP.NET v4.0,ASP.NET v4.0 Classic.这就是Web Deploy失败的关键.