IIS如何确定请求的处理程序

1. 给定一个url请求,IIS需要确定它的文件名,扩展名,以及最相似的与本请求资源合适的"ScriptMaps"metadata (缓存的ISAPI扩展 - 应用程序扩展名映射列表);

2. IIS检查是否有设定了的应用程序通配符,若有则匹配第一条应用程序扩展名映射

如果这个扩展映射返回“我不处理这类请求”,IIS将继续查找下一个,直到找到匹配的;

3. 如果没有通配符处理这个请求,然后IIS开始根据请求的扩展名,来依次匹配每个ScriptMaps,来确定合适的应用程序来处理。如果找到合适的应用程序扩展,IIS就会调用相应的程序来处理这个请求;

4. 如果没有应用程序扩展处理此请求,并且扩展名是危险的包含exe/dll类型,IIS会调用CGI/ISAPI 来处理请求;

5. 如果任然没有程序可以处理这个请求,IIS内嵌的静态文件处理器将接管,并做如下处理:

a、确定文件有效性:是否需要转向302请求,如果转向成功则ok;

b、如果请求是一个文件形式,则发送该文件给客户端;

c、如果设定了默认页面,然后就会查看默认页面列表,找到一个实际存在的可用的默认页面。如果定为到某个页面,然后就会做一个内部的url请求,来请求这个页面。

d、如果目录浏览权限是允许的,就会列出目录列表;

e、如果请求依然未被处理,就会产生 403.14 (拒绝访问)错误;

时间: 2024-07-31 23:43:46

IIS如何确定请求的处理程序的相关文章

Errore HTTP 404.2 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理

今天配置本地iis出现了一些问题,第一个是出现cgi等错误,iis重新安装后(大部分功能都打勾了)还是不能解决,选择iis服务器根目录,选择isapi和cgi限制,跟服务器iis对比了下,发现里面只有asp.net v2.0,于是添加了一个4.0,windows目录下的Microsoft.NET/Framework/v4.0.30319/aspnet_isapi.dll,问题解决 第二个问题是直接加了个默认目录是index.aspx,用了url重写,出现Errore HTTP 404.2 - N

HTTP错误 404.17 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理

Errore HTTP 404.2 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 出现这种情况的原因通常是因为先安装了Framework,后安装的IIS: 运行cmd,输入: C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i 注:C:\Windows\Microsoft.Net\Framework\V4.0.30319\   是 netframework安装对应的路径

IIS处理浏览器请求的流程

我曾在(发布网站 IIS部署网站)一文中说到 我们在IIS上部署一个网站的时候(我们在Internet 信息服务(IIS)管理器,对应网站的右边>编辑网站>基本设置,可以看到,网站名称与应用程序池的名称是一样的:其实我们在IIS里创建一个网站的时候,IIS会自动给我们建立一个与网站名称相同名称的应用程序池,这个应用程序池是干什么用的呢?当你请求这个MyTestWebSite网站以后,网站需要处理我们的请求,这样就需要有一个进程来处理,这个进程就是这个应用程序池里面的进程,帮我们处理对于这个网站

IIS处理并发请求时出现的问题及解决

原文链接:http://www.cnblogs.com/hgamezoom/p/3082538.html 一个ASP.NET项目在部署到生产环境时,当用户并发量达到200左右时,IIS出现了明显的请求排队现象,发送的请求都进入等待,无法及时响应,系统基本处于不可用状态.因经验不足,花了很多时间精力解决这个问题,本文记录了我查找问题的过程和最后解决方案,供大家参考. 软硬件环境: IBM刀片服务器,Intel至强处理器,4物理核,16个逻辑核心,内存32G Windows Server2008 E

javascript ajax请求(一般处理程序)

<script type="text/javascript"> var xmlHttp = null; function create() { //创建ajax技术核心对象XmlHttpRequest if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else xmlHttp = new XMLHttpRequest(); } function sum(

在ASP.NET开始执行HTTP请求的处理程序之前

using Dscf.Client.Web.Class; using Dscf.Client.Web.DscfService; using Dscf.Client.Web.Handler; using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; using System.Web; using System.Web.SessionState; namespace Ds

Ajax异步请求一般处理程序(List)返回Json数据

简单实现了通过jQuery的Ajax函数异步请求一般处理程序,数据由list模拟,返回json格式的数据. index.html: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="js/jquery.min.js" type="text/javasc

asp.net Ajax Post 请求一般处理程序

其实很早就开通博客园了,一直想写些有价值的东西,供自己以后查阅的同时,也可以帮助别人遇到此类问题时能有一个好的解决方法.但是由于各种原因, 就没有实施我的想法.今天突然很想写下一篇文章,不知道我的第一篇文章应该写些什么,那我就写一个最近做的一个小程序的一个知识点吧. 今天主要写ajax post提交到一般处理程序,一般处理程序接收到数据如何解析和处理的.其实在网上也看到了一些例子,但是总是会有这样那样的问题.所以 我把代码贴出来,希望能帮助到大家. 先将js代码贴出来 1 <script typ

使用.NET Framework开发IIS 7.0模块和处理程序拦截请求实现跳转

扩展IIS的两种方法:模块与处理程序. 模块,类似于以前的IIS版本中的ISAPI筛选器,它参与每个请求处理.IIS中一些现成的模块包括身份验证模块(用于处理请求的身份验证状态),压缩模块(用于压缩返回响应)以及日志记录模块(用于将有关请求的信息记录到请求日志中).模块是一个类,该类需要实现System.Web.IHttpModule接口,然后就可以使用System.Web中的API参与asp.net的请求处理. 处理程序,类似于以前iis版本中的ISAPI扩展,负责处理请求并生成特定内容类型的