2

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

Si 如果这是真的,我的问题是它如何识别要为该请求加载哪些扩展?MVC / Web 表单?

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

4

2 回答 2

2

那么 IIS 是否知道该请求是针对 MVC 或 WebForms 应用程序的?

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

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

于 2013-06-06T09:51:00.583 回答
2

这就是标准的 IHttpModule 和 IHttpHandler 基础设施。请参阅此处的完整描述Routing with ASP.NET Web Forms和此处的 ASP.NET MVC Routing Works 及其对静态请求性能的影响

于 2013-06-06T09:53:20.417 回答