IIS如何识别该请求是针对MVC控制器还是webforms页面?

时间:2013-06-06 09:29:53

标签: asp.net-mvc iis webforms

当应用程序池收到请求时,它只是将请求传递给工作进程(w3wp.exe)。工作进程“w3wp.exe”查找请求的URL以加载正确的ISAPI扩展。 ISAPI扩展是处理不同资源请求的IIS方法。安装ASP.NET后,它会安装自己的ISAPI扩展(aspnet_isapi.dll)并将映射添加到IIS中。

Si如果这是真的,我的问题是它如何识别要加载的扩展 对于那个要求? MVC / Web表单?

IIS何时何地知道请求是针对MVC还是WebForms应用程序? 框架如何决定哪些模块应该处理请求并决定在MVC中呈现页面内容或视图。

2 个答案:

答案 0 :(得分:2)

  

母,IIS是否知道请求是针对MVC或WebForms应用程序的?

它们都是ASP.NET应用程序,所以它不需要识别它。 aspnet_isapi.dll完全能够为两种类型的应用程序提供服务(实际上是一种称为ASP.NET的应用程序)。

ASP.NET MVC只是添加到ASP.NET管道的自定义处理程序。

答案 1 :(得分:2)

这一切都与标准的IHttpModule和IHttpHandler基础设施有关。请参阅此处的完整说明Routing with ASP.NET Web Forms和此处How ASP.NET MVC Routing Works and its Impact on the Performance of Static Requests