关于VS Development Server(vs调试默认运行环境)和IIS Web Server 做运行服务器时,请求处理的一点区别。
将请求粗略分为两类:静态资源请求和动态资源请求。
静态资源请求指:客户端请求*.html,*.img,*.js,*.css等静态资源。
动态资源请求指:客户端请求*.aspx等动态资源。
这儿主要阐述两类请求在不同的运行环境下处理方式。
用VS Development Server做为运行服务器调试程序时,静态资源请求和动态资源请求都会经过ASP.NET管道进入处理程序,
也就是说每一个静态资源请求和动态资源请求都会触发Application_BeginRequest事件,进入处理程序。
用IIS Web Server做运行服务器时,只有动态资源请求会经过ASP.NET管道进入处理程序,
也就是说只有动态资源请求会触发Application_BeginRequest事件,进入处理程序。
当运行服务器接受到请求时,VS Development Server会将静态资源请求和动态资源请求都转发给ISAPIRuntime.ProcessRequest()进行处理,
而IIS Web Server只会将动态资源请求转发给ISAPIRuntime.ProcessRequest()进行处理,将静态资源请求的目标对象转换为http形式直接返回。
当然可以通过修改IIS配置脚本映射(扩展名映射)将请求传入ASP.NET管道进行处理,修改脚本映射参见http://www.cnblogs.com/cxd4321/archive/2007/11/02/947004.html。
vs默认VS Development Sever和用IIS Web Server的一点差别,布布扣,bubuko.com