我宁愿完全不用禁用.NET运行时版本检查(带有忽略的eploymanagedruntimeversion),而是通过deploymanagedruntimeversion:
<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>
更多细节: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-with-webdeploy.html
题
在将Teamcity从一台服务器迁移到另一台服务器并切换到Visual Studio 2013之后,我们的构建使用MSDeploy将TC构建.ZIP软件包推向IIS时失败。
您尝试使用的应用程序池的“ takiteDruntimeversion”属性设置为“ v4.0”。此应用程序需要“ v4.5”
这是一个奇怪的错误,因为我的IIS服务器已安装了.NET 4.5,并且一直很乐意运行并部署了数周,并且4.0应用程序池将运行4.5个目标应用程序。
不幸的是,水域被TC和VS(2013)的变化所困扰,因此我无法确定的问题。
注意:我们的TC服务器仅在MSDN上使用Visual Studio 2012,并且可以尽早访问2013年。这可能是罪魁祸首,但并没有使问题变得更加奇怪。
解决方案
我宁愿完全不用禁用.NET运行时版本检查(带有忽略的eploymanagedruntimeversion),而是通过deploymanagedruntimeversion:
<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>
更多细节: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-with-webdeploy.html
其他提示
打开你的 .csproj
文件并设置以下元素:
<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>
在此元素上方添加它有助于可读性:
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
荣誉 https://stackoverflow.com/users/1769923/abhishikt-n-jain 在此处使用此鲜为人知的配置设置回答:
如果有人知道 为什么 发生这种情况,请随时添加答案。
更新
在下面无视我的评论。虽然它使我经过部署,但我得到了一个 503 Service Unavailable
当我实际尝试运行Web应用程序时。我通过设置 managedRuntimeVersion
属性回到v4.0,并添加了 IgnoreDeployManagedRuntimeVersion
到我的项目。然后部署成功,应用程序起作用。哑的...
在我在Windows Server 2008 R2 SP1机器上安装.NET Framework 4.5.1(作为升级PowerShell的一部分)上后,这发生在我身上。
Windows Server 2008上的IIS用户界面没有设置设置的选项 managedRuntimeVersion
即使在安装该版本后,属性至v4.5。但是,这可以在命令行上使用 appcmd
实用程序为 @3boysdad的答案。
appcmd
是管理IIS网站,应用程序,AppPools等等同的命令行。它位于 %systemroot%\system32\inetsrv\appcmd.exe
但这并不是以下链接所解释的路径:
我认为修改您的项目(通过 IgnoreDeployManagedRuntimeVersion
或者 DeployManagedRuntimeVersion
属性)是最佳的。应用程序池应设置为使用v4.5,在Windows Server 2008上执行此操作的唯一方法是使用 appcmd
效用。 @3boysdad的答案应该是公认的答案。
在寻找同样的问题时发现了这个宝石。
appcmd set apppool /apppool.name: <your app pool> /managedRuntimeVersion:v4.5
这将需要在您的 system32 inetsrv目录中执行。