3

这个问题说明了一切。

我在带有 IIS 6 的 Win 2003 服务器上有一个 QA 站点和 PROD 站点。我将站点移到了一个新服务器上,即带有 IIS 7 的 Win 2008 R2。在新服务器上,我将两个新站点的应用程序池设置为 2.0 . 在更新 DNS 以指向新服务器之前,我对这些站点进行了一系列测试,并且这些站点运行良好。所以我给我的客户发了一封电子邮件,让他们知道他们可以更新 DNS 以指向新服务器。

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

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

4

6 回答 6

1

我知道这是一个旧线程,但我们最近有一个服务器,在应用 Windows 更新后,所有 .net 4.0 应用程序池都更改为 .net 2.0。我发现一个线程声称在重置服务器时,应用程序池可以更改为 DefaultAppPool 设置的任何版本。在我们的服务器上,DefaultAppPool 设置为 2.0,所以这让我相信这是可能的。 https://community.spiceworks.com/topic/467973-iis-application-pool-net-randomly-changes

于 2018-09-13T13:29:14.827 回答
0

您可以尝试执行外部 PowerShell 脚本:

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0
于 2012-06-20T14:16:24.517 回答
0

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

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

于 2012-06-20T12:46:56.727 回答
0

我确实发生过一次,从未找到原因,将其更新回 4 一切正常,客户满意。

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

于 2012-06-28T09:32:56.993 回答
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 运行,而不是在本地运行。

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

于 2012-06-20T14:10:00.993 回答
0

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

于 2012-06-20T14:13:20.283 回答