当一个请求进入IIS时,IIS如何知道该请求是针对ASP.NET的,而不是像PHP那样的其他内容。
我猜它没有。所有IIS都会查找HTTP请求标头中请求的域,并将请求路由到在该网站名称上运行的IIS中托管的应用程序。但是aspnet_isapi.dll在解决请求时做了什么?只有在请求已经在ASP.NET中时,库才会生效吗?
答案 0 :(得分:0)
你已经非常正确了。 IIS基本上充当可能想要响应给定请求的任何Web应用程序的控制器。当请求进入时,IIS通过检查针对已定义绑定的请求将其路由到相应的应用程序。如果找到匹配的绑定,则检查相应的应用程序是否已初始化,如果不是,则执行该初始化。然后它传递请求,Web应用程序完成处理请求和生成响应的所有实际工作。
重要的是,Web应用程序不一定是asp.net网站或应用程序的同义词。 IIS还可以托管邮件服务器,ftp站点,(我相信)php应用程序等等。但是,在每种情况下,仍然必须定义绑定,并且必须有一个IIS可以初始化并查询状态的引擎。