3

我在几个 IIS6/Server 2003 机器上运行了许多 Web 应用程序。他们跑得很好,很开心。它们都是 asp.net Web 应用程序并使用 .NET 3.5。

如果有的话,考虑将 Web 应用程序迁移到 IIS7/Server 2008 的正当理由是什么?

4

3 回答 3

7

IIS7 以“可插拔”的概念从头开始重写。IIS7 比以往任何时候都更具可扩展性。整个请求管道已经过重新设计,让您也可以更轻松地处理请求。

从性能方面来看,这些变化是可以立即识别的。您可以在“经典”应用程序池中运行为 IIS6 开发的站点,这将保持兼容性,但提供显着的性能提升。在我们迄今为止所做的非科学评估中,我们的旧应用程序在 IIS7 测试机器上的加载时间减少了大约 20%。

当然,我们必须以“经典”模式运行的原因是一个有趣的旁注。在 global.asax 中,有一些在应用程序启动时会触及 HttpContext 的预取。具体来说,已经完成了预缓存,这是 IIS7 不允许的。因此,在我们从“经典”模式切换之前,我们必须做出一些改变。

于 2008-11-29T15:46:31.733 回答
3
  1. 最终,Microsoft 将停止对 Server 2003 的支持。诚然,这不会持续几年,所以它不会影响你今天。
  2. 改进了对 ASP.NET MVC 的支持。对于我们大多数人来说,这可能是最重要的。您可以让 ASP.NET MVC 在 IIS6 上运行,但是需要跳过.

我会给你更多,但我自己还没有在 Server 2008 上,也没有什么可以给的。大概 Vista(我在工作和在家中都使用)具有与 2008 年“相同”的 IIS7——UI 看起来非常相似——但我认为我在那里的经验对你的问题没有用处。

于 2008-11-12T19:17:22.473 回答
2

能够以托管语言编写管道组件。以前,如果您想编写一个 ISAPI 过滤器来处理某种类型的 Web 请求,则必须用 C++ 编写它。现在,您可以使用良好的 .NET 代码。这允许通过编写可重用的管道组件来处理各种类型的请求进行更多的定制。例如,所有 .js 文件请求都被路由到 ScriptCompressor 管道组件,该组件会压缩并返回它们,并设置了大量的可缓存性。

对 MVC 的改进支持与此相关,因为您可以将 II7 设置为路由请求而不扩展 .NET,这样您就可以拥有“更干净”的 url,例如http://www.yourwebsite.com/customer/1而没有任何扩展可见,它揭示了您正在使用的服务器技术类型,并且这些天非常不流行。

于 2008-11-12T19:25:42.567 回答