iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式

iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式

iis6迁移iis8

I had an interesting emailed question today. Here's a paraphrased one sentence version of the question:

我今天有一个有趣的电子邮件问题。 这是问题的一句话解释:

Why does an ASP.NET Runtime issue surface in IIS 8.0 Integrated Pool for an application we have run successfully on previous versions of IIS and classic mode in IIS 8.0 ?

为什么对于我们已经在IIS 8.0的早期版本和经典模式下成功运行的应用程序,IIS 8.0集成池中出现了ASP.NET运行时问题?

It's less interesting that they've moved from IIS6 to IIS8 and more significant that they've moved from Classic Mode to the Integrated Mode pipeline.

他们已经从IIS6迁移到IIS8变得不那么有趣了,更重要的是他们已经从经典模式转移到了集成模式管道。

So, the short answer. These pipelines are different and if you write an app expecting the behavior of one pipeline and the move it, your observed behavior will likely be different when you move it to the new pipeline.

因此,简短的答案。 这些管道是不同的,如果您编写的应用程序期望一个管道的行为并对其进行移动,则将其移动到新管道时,观察到的行为可能会有所不同。

IIS6 was released in Windows Server 2003 over 10 years ago. Apps used the ISAPI pipeline. By its nature everything in IIS6 is what we think of today as "classic mode," rather than the newer Integrated Pipeline in IIS7.

IIS6于10年前在Windows Server 2003中发布。 应用使用ISAPI管道。 从本质上讲,IIS6中的所有内容都是我们今天认为的“经典模式”,而不是IIS7中较新的集成管道

IIS6 with ASP.NET had two pipelines - the IIS unmanaged one and the managed ASP.NET one. Here's a simplistic but mostly accurate diagram (as is the case with diagrams):

带有ASP.NET的IIS6有两个管道-IIS非托管管道和托管ASP.NET管道。 这是一个简单但主要是准确的图表(与图表一样):

iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式

IIS7 and 8 were re-architected with the superior and faster Integrated Mode pipeline but retain "Classic" mode for compatibility.

IIS7和8用更高级,更快的集成模式管道进行了重新架构,但保留了“经典”模式以实现兼容性。

iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式

"Doctor, it hurts when I do that."

“医生,我这样做会很痛。”

"Don't do that."

“不要那样做。”

If you're moving an older app from IIS6 (which by definition was only "classic" mode) to IIS 8, the best near-term decision is to run in Classic Mode on IIS8.  Classic Mode is fully supported so you aren’t doing anything wrong by running in classic mode.  It's a mode that is there for a reason.

如果要将较旧的应用程序从IIS6(按定义仅是“经典”模式)迁移到IIS 8,则最好的近期决策是在IIS8上以经典模式运行。 完全支持经典模式,因此通过经典模式运行不会出现任何错误。 这是有原因的模式。

Think about your reasons and make an educated decision.

考虑一下您的原因并做出明智的决定。

Remember that there can be incompatibilities and edge-case behavioral issues when ASP.NET apps attempt to move from the older ISAPI hosting model circa IIS 6 to the newer integrated mode that came in IIS7 without thinking about the ramifications.

请记住,当ASP.NET应用程序试图从大约IIS 6的较旧ISAPI托管模型迁移到IIS7中的较新的集成模式而没有考虑后果时,可能会存在不兼容和极端情况的行为问题。

I hope this helps.

我希望这有帮助。

关于斯科特 (About Scott)

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

斯科特·汉塞尔曼(Scott Hanselman)是前教授,前金融首席架构师,现在是演讲者,顾问,父亲,糖尿病患者和Microsoft员工。 他是一位失败的单口相声漫画家,一个玉米种植者和一本书的作者。

iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式
iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式
iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式
About   关于 Newsletter 时事通讯
Hosting By 主持人
iis6迁移iis8_将旧版应用程序从IIS6迁移到IIS8以及为什么存在经典模式

翻译自: https://www.hanselman.com/blog/moving-old-apps-from-iis6-to-iis8-and-why-classic-mode-exists

iis6迁移iis8