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

11
我有一个运行良好的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安装到服务器上。
尝试使用aspnet_regiis重新注册ASP.NET-没有成功。
为什么我会出现错误,如何解决?这真是太令人沮丧了...
附注: 找到了类似问题关于RC的问题,但没有帮助。
更新: 看起来这是个错误自CTP以来,微软一直没有修复它。IgnoreDeployManagedRuntimeVersion属性可以解决问题。真可惜!

随意在自己的帖子中发布答案。 - Julien Lebosquain
4个回答

11

你可以尝试将这个属性添加到项目中:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

5
...或将其传递给MSBuild(用于CI等).../P:IgnoreDeployManagedRuntimeVersion=True。 - Fred Lackey

5

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


2

@kzu: 不是尝试,这会起作用。

安装Orchard CMS时遇到了同样的问题。继续将目标定为v2.0。但找到了简单的解决方案:在IIS中,在应用程序池(包含所有应用程序池的列表)上,您可以找到第二个设置顶部右侧列表:“设置应用程序池默认值..”,在那里将默认值从2.0更改为4.0等,voila。


1

注册ASP.NET到IIS
a. 以管理员身份运行CMD
b. 切换至 \windows\microsoft.net\framework\v4.x 目录
c. 运行 Aspnet regiis -i 命令


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接