【问题标题】:Deploying .NET 4.5 web app with Web Deploy使用 Web Deploy 部署 .NET 4.5 Web 应用程序
【发布时间】:2012-10-10 13:02:20
【问题描述】:

我有一个正常工作的 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 - 不成功。

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

附言 找到了similar question关于 RC 但它没有帮助

更新:

看起来this is a bug 微软自 CTP 以来还没有修复。 IgnoreDeployManagedRuntimeVersion 属性成功了。太可惜了!

【问题讨论】:

  • 随意发布自己的答案。

标签: asp.net .net iis-7.5 msdeploy webdeploy


【解决方案1】:

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

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

【讨论】:

  • ... 或将此传递给 MSBuild(用于 CI 等)... /P: IgnoreDeployManagedRuntimeVersion=True
【解决方案2】:

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 失败的关键。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      为 IIS 注册 ASP.NET
      一种。以管理员身份运行 CMD
      湾。 CD 到 \windows\microsoft.net\framework\v4.x
      C。 Aspnet regiis -i

      【讨论】:

        猜你喜欢
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多