IIS如何处理MVC项目

时间:2015-06-12 11:05:43

标签: asp.net-mvc iis

IIS似乎是一个侦听传入连接的应用程序,将那里发送的数据解析为HTTP请求,并根据site application和{{1}将请求网址映射到目录然后根据该位置上存在(或不存在)的文件执行某些操作。

MVC同时接受HTTP请求,将其路由到控制器,控制器生成HTTP响应并将其发回。

似乎MVC处理与IIS一样的网络堆栈的相同部分,模块化网络端点(这是代码的一个相当简单的部分,艰苦的工作是由TCP上的网络堆栈的底层OS部分完成的等级),但MVC网站以“某种方式”在“IIS”中托管。

但IIS是一个庞大的计划。它必须做除连接管理之外的其他事情。它实际上是什么做什么,所有这些概念(“网站”,“应用程序”,“虚拟目录”)在项目的上下文中意味着什么,它们似乎首先取代了它们的功能?

1 个答案:

答案 0 :(得分:0)

MVC或IIS执行任何端口侦听或HTTP解析。这是http.sys的工作,即HTTP Server API。请参阅MSDN: HTTP Server APIhow exactly does http.sys workIntroduction to IIS Architectures,尤其是HTTP Request Processing in IIS

除了配置和管理之外,IIS还在http.sys之上添加了许多功能:处理程序和模块。这些允许您运行任何类型的代码来生成或更改HTTP请求的响应。

此处的关键点是handlers。他们决定调用哪个特定软件来处理请求,或者他们自己处理请求。您有静态资源处理程序来处理例如对image,css和js文件的请求。还有处理.aspx请求的ASP.NET处理程序,请参阅Introduction to HTTP Handlers

现在MVC与routing handler携手合作。 MVC处理程序所做的就是查看URL和路由配置,然后选择要调用哪个控制器方法来生成请求的响应。