.NET版本的应用程序池是否可以自行更改?

时间:2012-06-20 12:43:35

标签: .net windows iis application-pool .net-framework-version

这个问题说明了一切。

我在带有IIS 6的Win 2003服务器上有一个QA站点和PROD站点。我将站点移动到新服务器,使用IIS 7 Win 2008 R2。在新服务器上,我将应用程序池设置为2.0两个新网站。在更新DNS以指向新服务器并且网站工作正常之前,我测试了一堆网站。所以我给我的客户发了一封电子邮件,让他们知道他们可以更新DNS以指向新服务器。

当我回到家时,我开始收到警报,说该网站已关闭。经过一些调查,我发现两个站点的应用程序池的.NET版本已更改为4.0。这使网站瘫痪。客户端无权访问服务器。我的其他开发人员都没有改变它。我自己没有改变它。它本身似乎发生了变化。

应用程序池的.NET版本是否可以自行更改?

5 个答案:

答案 0 :(得分:0)

回答你的问题。不,这不可能改变自己。

我还会问为什么你的应用程序不能在NET 4.0上运行,因为它向后兼容NET 2.0。

答案 1 :(得分:0)

我不熟悉将应用程序/站点部署到IIS,所以请耐心等待。

这个问题让我想起了微软 Scott Hanselman 的博客文章:ASP.NET MVC Beta and RC Upgrades - Confirm your Expectations and Version Numbers in Production Environments

在本文中,Scott解释了所用程序集的版本号的差异。在生产站点与开发版本不同之前,他还不知道它。可能这篇文章可能会帮助你深入了解原因。

本文还提到了一个名为MvcDiagnostics的工具(链接到NuGet页面)。例如,MvcDiagnostics将允许您获取有关您的环境,路径和版本信息的大量信息。

在Scott的案例中,他发现System.Web.Mvc.DLL的本地版本比他服务器上的版本更新,而是从GAC运行而不是在本地运行。

也许这可以为您提供考试的起点。

答案 2 :(得分:0)

它本身不应该改变,但是,有人可能已经进入并无意中将其更改为服务器上的默认值

答案 3 :(得分:0)

You can try to do that executing external PowerShell script:

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0

答案 4 :(得分:0)

我确实曾经发生这种情况,从来没有找到理由,将其更新回4所有工作,客户满意。

是IIS7,但我记不起任何其他细节了。在不同的Windows平台上处理了数百个站点部署到各种IIS版本后,我很惊讶这个设置“出现”自动更改。 我并不反对其他人改变它的可能性,但似乎不太可能,我的项目,我的网站,我的部署,以前工作过,很少其他用户更改有问题的服务器上的任何设置。