为什么要从IIS6迁移到IIS7?

时间:2022-09-25 12:36:37

I have a number of web apps running on several IIS6/Server 2003 boxes. They run well and are happy. They are all asp.net web apps and use .NET 3.5.

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

What, if any, would be valid reasons for contemplating moving the web apps to IIS7/Server 2008?

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

3 个解决方案

#1


7  

IIS7 is rewritten from the ground up with a concept of being "pluggable". IIS7 is more extensible than it ever has been before. The entire request pipeline has be reworked to allow you to more easily work with requests, as well.

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

From a performance aspect, these changes are immediately recognizable. You can run sites developed for IIS6 in a "Classic" application pool that will preserve compatibility, but provide a noticeable performance boost. In the non-scientific evaluation that we have done so far, our legacy application has seen about a 20% reduction of load times on our IIS7 test machine.

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

Of course, the reason we have to run in "classic" mode is an interesting side note. Inside the global.asax, there is some pre-fetching on application start which touches the HttpContext. Specifically, there is pre-caching done, which IIS7 does not allow. So, before we can switch from "classic" mode, there are some changes that we will have to make.

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

#2


3  

  1. Eventually, Microsoft will discontinue Server 2003 support. Admittedly, that won't be for several years, so it doesn't impact you today.
  2. 最终,Microsoft将停止Server 2003支持。不可否认,这将不会持续好几年,因此今天对您没有影响。

  3. Improved support for ASP.NET MVC. This is probably the big one for most of us. You can get ASP.NET MVC working on IIS6, but there are some hoops to jump through.
  4. 改进了对ASP.NET MVC的支持。这对我们大多数人来说可能是最重要的。你可以让ASP.NET MVC在IIS6上运行,但是有一些可以跳过的箍。

I'd give you more, but I myself am not yet on Server 2008 yet, and have nothing else to give. Presumably Vista (which I do use, both at work and at home) has the "same" IIS7 as 2008 does -- the UIs certainly look very similar -- but I wouldn't consider my experience there to be useful to your question.

我会给你更多,但我自己还没有使用Server 2008,没有别的东西可以给你。据推测,Vista(我在工作场所和家里都使用)拥有与2008年相同的“IIS7” - 用户界面看起来非常相似 - 但我不认为我的经验对你的问题有用。

#3


2  

Ability to write pipeline components in managed langauges. Previously, if you wanted to write an ISAPI filter to handle a certain type of web request, you'd have to write it in C++. Now, you can use good ol' .NET code. This allows more customization with the ability to write reusable pipeline components for handling various types of request. For example, all .js file request are routed to a ScriptCompressor pipeline component which zips and returns them with lots of cacheability set up.

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

The improved support for MVC is linked to this as you can set II7 to route requests without extensions to .NET so you can have urls which are "cleaner" such as http://www.yourwebsite.com/customer/1 without having any extension visible which reveals what type of server technology you're using and is very untrendy these days.

对MVC的改进支持与此相关联,因为您可以将II7设置为在没有扩展到.NET的情况下路由请求,这样您就可以拥有“更清洁”的URL,例如http://www.yourwebsite.com/customer/1,而无需任何扩展可见,它揭示了您正在使用的服务器技术类型,并且现在非常不合适。

#1


7  

IIS7 is rewritten from the ground up with a concept of being "pluggable". IIS7 is more extensible than it ever has been before. The entire request pipeline has be reworked to allow you to more easily work with requests, as well.

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

From a performance aspect, these changes are immediately recognizable. You can run sites developed for IIS6 in a "Classic" application pool that will preserve compatibility, but provide a noticeable performance boost. In the non-scientific evaluation that we have done so far, our legacy application has seen about a 20% reduction of load times on our IIS7 test machine.

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

Of course, the reason we have to run in "classic" mode is an interesting side note. Inside the global.asax, there is some pre-fetching on application start which touches the HttpContext. Specifically, there is pre-caching done, which IIS7 does not allow. So, before we can switch from "classic" mode, there are some changes that we will have to make.

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

#2


3  

  1. Eventually, Microsoft will discontinue Server 2003 support. Admittedly, that won't be for several years, so it doesn't impact you today.
  2. 最终,Microsoft将停止Server 2003支持。不可否认,这将不会持续好几年,因此今天对您没有影响。

  3. Improved support for ASP.NET MVC. This is probably the big one for most of us. You can get ASP.NET MVC working on IIS6, but there are some hoops to jump through.
  4. 改进了对ASP.NET MVC的支持。这对我们大多数人来说可能是最重要的。你可以让ASP.NET MVC在IIS6上运行,但是有一些可以跳过的箍。

I'd give you more, but I myself am not yet on Server 2008 yet, and have nothing else to give. Presumably Vista (which I do use, both at work and at home) has the "same" IIS7 as 2008 does -- the UIs certainly look very similar -- but I wouldn't consider my experience there to be useful to your question.

我会给你更多,但我自己还没有使用Server 2008,没有别的东西可以给你。据推测,Vista(我在工作场所和家里都使用)拥有与2008年相同的“IIS7” - 用户界面看起来非常相似 - 但我不认为我的经验对你的问题有用。

#3


2  

Ability to write pipeline components in managed langauges. Previously, if you wanted to write an ISAPI filter to handle a certain type of web request, you'd have to write it in C++. Now, you can use good ol' .NET code. This allows more customization with the ability to write reusable pipeline components for handling various types of request. For example, all .js file request are routed to a ScriptCompressor pipeline component which zips and returns them with lots of cacheability set up.

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

The improved support for MVC is linked to this as you can set II7 to route requests without extensions to .NET so you can have urls which are "cleaner" such as http://www.yourwebsite.com/customer/1 without having any extension visible which reveals what type of server technology you're using and is very untrendy these days.

对MVC的改进支持与此相关联,因为您可以将II7设置为在没有扩展到.NET的情况下路由请求,这样您就可以拥有“更清洁”的URL,例如http://www.yourwebsite.com/customer/1,而无需任何扩展可见,它揭示了您正在使用的服务器技术类型,并且现在非常不合适。