2012-10-10 96 views
8

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

错误代码: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 - 没有运气。

为什么我得到错误,我该如何解决?这太令人沮丧了......

p.s. 找到similar question约RC,但它并不能帮助

更新:

貌似this is a bug微软并没有因为CTP固定。 IgnoreDeployManagedRuntimeVersion财产做到了。多可惜!

+0

随时发布自己的答案。 –

回答

5

Windows Server 2012中默认包含.NET 4.5和(当添加的Web服务器角色)IIS有以下应用程序池:默认应用.NET V4.5,使用.NET V4.5经典 .NET Framework 4.0(因为4.5是4.0的就地升级)。但是,如果我们在安装了.NET 4.0的Windows Server 2008上安装.NET 4.5 Redistributable,则池不会重命名:ASP.NET v4.0ASP.NET v4.0 Classic。这是Web部署失败的关键。

9

你可以尝试添加该属性的项目:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion> 
+3

...或将其传递给MSBuild(对于CI等).../P:IgnoreDeployManagedRuntimeVersion = True –

2

@kzu:没有尝试,这会工作。

安装Orchard CMS时遇到同样的问题。继续定位v2.0。 但找到简单的解决方案:在IIS中,在应用程序池(具有所有应用程序池的列表)上,可以找到第二个设置右上角列表:“设置应用程序池默认值..”,将默认值从2.0更改为4.0 et ,瞧。

1

为IIS注册ASP.NET
a。以管理员身份运行CMD
b。 CD to \ windows \ microsoft.net \ framework \ v4.x
c。 Aspnet regiis -i