当应用程序池收到请求时,它只是将请求传递给工作进程(w3wp.exe)。工作进程“w3wp.exe”查找请求的URL以加载正确的ISAPI扩展。 ISAPI扩展是处理不同资源请求的IIS方法。安装ASP.NET后,它会安装自己的ISAPI扩展(aspnet_isapi.dll)并将映射添加到IIS中。
Si如果这是真的,我的问题是它如何识别要加载的扩展 对于那个要求? MVC / Web表单?
IIS何时何地知道请求是针对MVC还是WebForms应用程序? 框架如何决定哪些模块应该处理请求并决定在MVC中呈现页面内容或视图。
答案 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