首页
学习
活动
专区
圈层
工具
发布

ASP.NET 运行机制详解

所以,IIS就去它的 扩展程序映射表 中根据被请求文件后缀名 查看是否有能够处理这种文件的扩展程序。 ?...IIS自身是不能处理像ASPX扩 展名这样的页面,只能直接请求像HTML这样的静态文件,之所以能处理ASPX这样扩展名的页面,是因为IIS有一个ISAPI过滤器,它是一个COM组件。...ASP.NET服务在注册到IIS的时候,就会添加一个Win32的扩展动态库aspnet_isapi.dll。并将扩展可以处理的页面扩展名(如 ASPX)注册到IIS里面。...扩展启动后,就根据定义好的方式来处理IIS所不能处理的页面。...当客户端请求一个服务器资源时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后Check请求资源的类型,并依据资源映射信息(存储在IIS元库中,一种IIS专用的配置数据库)将请求的资源分配给特定的处理程序模块

2.4K70

IIS网站防盗链下载的解决方案

为什么会产生盗链   一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。...如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http...如果WEB服务器用的是APACHE的话,那么使用APACHE自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查REFER,如果REFER的信息来自其他网站则禁止访问所需要的资源。   ...那么,IIS支持UrlRewrite吗?   答案很简单,不支持。但是我们可以通过安装第三方服务器扩展让IIS支持。   ...目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.Net请求处理机制初步探索之旅 - Part 1 前奏

    此外,本文以IIS经典模式为主,不讨论集成模式(IIS7后加入了集成模式,不用加载外部的aspnet_isapi.dll组件)。 一、当一个请求到来时 ①客户端发送一个请求给服务器端 ?...有了基于ISAPI的扩展扩展程序,IIS服务器就可以根据客户端请求的资源扩展名,来决定应由哪个ISAPI扩展程序来处理客户端请求,然后就可以将请求转发给合适的ISAPI扩展程序。 ? ?...关于IIS服务器扩展: 由于IIS服务器在设计时引入了开放的ISAPI接口标准,具备极高的可扩展性。在核心组件不变的情况下可灵活支持不同类型不同版本的ASP.NET应用程序。...关于ISAPI: ISAPI(服务器应用编程接口),它为开发人员提供了强大的可编程能力,只要按照标准接口开发不同类型的Web应用程序的ISAPI扩展程序,就能实现对IIS功能上的扩展,从而使IIS可以处理不同类型的客户端请求...IIS管理器提供了应用程序配置功能,可以对不同的客户端请求配置不同的ISAPI扩展程序。ISAPI扩展程序通常以DLL形式存在,可以被IIS加载并调用。

    2K20

    IIS防盗链技术

    为什么会产生盗链   一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。...如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http...如果WEB服务器用的是APACHE的话,那么使用APACHE自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查REFER,如果REFER的信息来自其他网站则禁止访问所需要的资源。   ...那么,IIS支持UrlRewrite吗?   答案很简单,不支持。但是我们可以通过安装第三方服务器扩展让IIS支持。   ...目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。

    70130

    IIS的架构介绍

    4.组件化的设计和丰富的接口使IIS越来越开放   自IIS7.0起,IIS使用组件化设计并提供了丰富的扩展接口,这使得IIS变得越来越开放了。...当今的IIS不仅能支持微软自己的ASP.NET动态页面技术,第三方也可以通过编写ISAPI扩展的形式支持其他的动态页面技术。...ISAPI可以被理解为是IIS的一种扩展插件,当IIS发现某种服务器上的资源自己无法处理时,就会按照配置信息把请求转给对应的IAPI的扩展来执行;IIS会等待ISAPI的执行结果,然后把结果透传给客户端浏览器...如图1.2所示,IIS发现请求是一个自己无法处理的.aspx结尾的页面,于是会在w3wp.exe进程中按照预设配置创建ASP.NET ISAPI扩展的实例,让ISAPI计算好结果返回给用户。...1.4.4 一个ASP.NET 页面请求的处理 1.4.2节已经介绍了IIS是通过ISAPI扩展的方式来处理自己无法处理的动态页面请求的。

    3K10

    HttpHand和HttpModule的详细解释,包括Asp.Net对Http请求的处理流程。

    IIS推出了一种机制,叫做ISAPI的开放扩展,这个东西是一个标准组件(COM组件),他是一个过滤器+跳转程序,如果安装了专门的扩展,那么在访问IIS所不能处理的文件时,如.asp和.aspx文件,IIS...刚才说了,ISAPI首先是个过滤器,他在注册到IIS的时候,会把每个扩展可以处理的文件扩展名注册到IIS里面。...2 当请求到达时,IIS 检查资源类型(就是检查请求文件的扩展名,发现不是自己所能处理的),就调用 ASP.NET ISAPI 扩展。...之所以使用同步模型,是因为请求只有在 ISAPI 内部请求表中被标记为“executing”,辅助进程才能开始处理它。...5 最后,ISAPI获取了响应(就是经过asp.net运行库所处理后的html内容)后,把响应返回给IIS,IIS将继续处理它的内容,解析所需相关文件,并且把所有的数据发送给客户端。然后关闭连接。

    1.1K20

    ASP.NET是如何在IIS下工作的

    Worker Process: 当工作者进程接收到请求后,首先根据后缀找到并加载对应的ISAPI扩展 (如:aspx 对应的映射是aspnet_isapi.dll),工作者进程加载完aspnet_isapi.dll...Worker Process运行在非托管环境,而.NET中的对象则运行在托管环境之上(CLR),它们之间的桥梁就是ISAPI扩展。...IIS7的运行过程: ? 分析上图可知:     1、当客户端浏览器开始 HTTP 请求一个WEB 服务器的资源时,HTTP.sys 拦截到这个请求。    ...集成模式:asp.net不再像IIS6一样只限定于aspnet_isapi.dll中,而是被解放出来,从IIS接收到HTTP请求开始,即进入asp.net的控制范围,asp.net可以存在于一个请求在IIS...总结与扩展: 对于处理ASP.NET应用程序而言,IIS6及IIS7的经典模式需要aspnet_isapi.dll来处理,而IIS7集成模式不需要aspnet_isapi.dll来处理,而可以直接根据文件扩展名找到相应的处理程序接口

    3.6K80

    理解并自定义HttpHandler

    前言                                      之前从网上找了几篇讲解如何自定义HttpHandler的文章,依葫芦画瓢却一直没成功过。...default.aspx对应的是Aspnet_ISAPI.exe来处理(所以执行文件路径为Aspnet_ISAPI.exe的文件均由它处理),然后Aspnet_ISAPI.exe就把请求转发到Asp.net...所以 1.自定义时要配置IIS让它把对应的文件后缀映射到Asp_ISAPI.exe来处理; 2.在应用程序级web.config中配置节点使HttpApplication能根据配置把请求交由相应的...中配置,在图1中添加一项映射项,扩展名为.gif,可执行文件路径为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,动作为全部动作...IIS中配置,在图1中添加一项映射项,扩展名为.gif,可执行文件路径为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,动作为全部动作

    1.5K80

    .NET工作准备--04ASP.NET

    COM服务器在OS内注册;可以使用vs自带的oleview查看;CLR实际可以被非托管代码加载使用; 理解难度很大,加油endeavor ISAPI是什么?...全称为internet服务器扩展应用程序(asp.net?),而ISAPI过滤器则是指在启动ISAPI的http服务器上运行的dll,它可以用来处理特定http请求; asp.net是什么?...是一个宿主在CLR上的ISAPI过滤器程序;ISAPI->ASP.NET->托管代码机制很复杂,简要说明: asp.net初始运行,加载CLR; iis接受一个http请求,并且判断出该请求应该被绑定到...接着转换所有的控件标签并生成页面的html,并且发送回客户端。 2.控件和页面 *什么是静态/动态页面?...ViewState的类型是System.Web.UI.StateBag,它是存储名称/值对的字典;可以使用户在使用动态页面时获得连续性动作的功能;(就是说ViewState并不是存储在服务器中,而是通过不断的在服务器和客户端之间传送

    2.7K50

    ASP.NET那点不为人知的事(一)

    IIS服务器会分析请求的类型,然后从处理程序映射(即下文IIS服务器扩展)表中去匹配,当在处理程序映射表中能够匹配到请求的类型时,那么IIS服务器就将请求交给处理程序映射表中所对应的程序来处理。...IIS服务器扩展 由于IIS服务器在设计时引入了开放的ISAPI接口标准,具备极高的可扩展性。在核心组件不变的情况下可灵活支持不同类型不同版本的ASP.NET应用程序。...Web应用程序的ISAPI扩展程序,就能实现对IIS功能上的扩展,从而使IIS可以处理不同类型的客户端请求。...IIS管理器提供了应用程序配置功能,可以对不同的客户端请求配置不同的ISAPI扩展程序ISAPI扩展程序通常以DLL形式存在,可以被IIS加载并调用。...有了基于ISAPI的扩展扩展程序,IIS服务器就可以根据客户端请求的资源扩展名,来决定应由哪个ISAPI扩展程序来处理客户端请求,然后就可以将请求转发给合适的ISAPI扩展程序。

    1.4K80

    发布一个.net mvc站点遇到的问题及解决

    1、先通过vs2012发布.net mvc项目,遇到问题是一路默认下来,提示发布已成功,但对应文件夹里没有任何文件 解决: 第一步,新建了一个文件夹 第二步,在【配置文件】步骤,新建配置文件 第三步,在...2、在IIS7.5发布站点 发起一个请求,提示404 解决: 第一步,在目录下新建一个1.html文件,访问正常,由此可推断是和mvc项目性质有关 第二步,通过查资料,发现需要设置IIS里的【ISAPI...和CGI限制】,设置ASP.NET v4.0.30319...为允许(使用此功能指定可以再Web服务器上运行的ISAPI和CGI扩展)---通过测试发现这一步没用(成功后,取消这个设置,没影响访问) 第三步...,检查站点的应用程序池对应的Framework版本,需要到4.0才和我当前的项目匹配。...3、还有一个命令,在vs2012开发人员工具--开发人员命令提示里,输入aspnet_regiis -i 重新安装(修复映射)IIS Mapping,用于aspx asmx等文件的Extention的匹配

    808110

    Http请求处理流程

    而实际上,从你轻拍回车到页面呈现在你眼前的十分之一秒内,IIS和.Net Framework已经做了大量的幕后工作。...(一个受保护的例子就是 App_Code中的文件,一个不受保护的例子就是你的js脚本),那么IIS将直接把这个文件返还给客户端。...现在我们应该知道:Asp.Net 只是服务器(IIS)的一个组成部分而已,它是一个 ISAPI扩展。...理解宿主环境(Hosting) 从本质上讲,Asp.Net 主要是由一系列的类组成,这些类的主要目的就是将Http请求转变为对客户端的响应。...除了映射文件与其对应的处理程序以外,ISAPI 还需要做一些其他的工作: 从HTTP.SYS中获取当前的Httq请求信息,并且将这些信息保存到 HttpWorkerRequest 类中。

    1.7K20

    在腾讯云Windows 2012系统上安装IIS 8.0

    Windows2012及其自带的IIS8.0是微软公司新一代的Web服务器软件,和老版本的IIS相比,有很多破天荒的新功能。...IIS的全部模块列表如下: (1)安全性 请求筛选(默认安装) IIS客户端证书映射身份验证 IP和域限制 URL授权 Windows身份验证 集中式SSL证书支持 客户端证书映射身份验证 摘要式身份验证...请求监视器 日志记录工具 自定义日志 (5)应用程序开发 .NETExtensibility3.5 .NETExtensibility4.5 ASP ASP.NET3.5 ASP.NET4.5 CGI ISAPI...扩展 ISAPI筛选器 WebSocket协议 服务器端包含 (6)FTP服务器 FTP服务 FTP扩展 (7)管理工具 IIS管理控制台(默认安装) IIS6管理兼容性 IIS管理脚本和工具 管理服务...注意,不同于IIS6.0以前的版本,从IIS7.0开始,安装Windows组件不再通过光盘或i386文件,而是直接从网络上下载。所以安装前请确保已经设置好了网络,并且可以正常浏览网页。

    6.1K30

    IIS执行原理

    HTTP.SYS HTTP.SYS是TCP之上的一个网络驱动程序,因此,HTTP.SYS不再属于IIS(这里说的IIS都是IIS6.0+版本,下文如果不特殊指明,默认为IIS6.0+版本),它已经从IIS...3-1. w3wp.exe会根据IIS中ISAPI扩展读取对应的处理的Dll,用asp.net举例:当用户访问的网站是asp.net平台,则 类型是.cshtml和.aspx文件类型。...根据配置w3wp.exe会加载aspnet_isapi.dll(简称是ISAPI). IIS中应用程序的映射: ? IIS中处理流程: ? 3-2....当ISAPI加载后,会启动一个ASP.NET的工作进程,把信息的控制权交给Asp.Net来处理。此处请求的处理由IIS交给了asp.net的程序。...而非托管代码,在编译的时候要保证兼容性,所以只能使用最通用的cpu指令(公共的CPU指令),所以我个人认为,.Net在执行的效率上更具有优势。 非托管编译运行过程 ?

    2.8K21

    Java Web 从入门到改行(1)--基础准备

    动态Web请求.jpg 执行流程: 动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request...如果WEB Server Plugin发现客户端请求的是静态资源(.htm或者是.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。...中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。...Tomact7 ** IIS ** Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的...它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。 ? 3 .

    98320

    Asp.net管道模型(管线模型)之一发不可收拾

    上图左边为IIS5.X WEB SERVER,右边为Asp.net Application的工作进程(worker process),Asp.net是以作为IIS组件的形式扩展IIS的。   ...参考:各版本IIS下ASP.net请求处理过程区别    当一个http request发送到IIS5.X时,IIS先把虚拟目录转变为物理目录,然后根据文件后缀名检查iis中的metabase文件检查文件扩展名与可执行代码...(扩展程序)映射记录(如.aspx、.ashx等对应aspnet_isapi.dll),如果metabase文件中没有就再检查是否为不受服务器端保护的文件(受服务器端保护:App_Code文件夹下的文件...(这里是aspnet_isapi.dll),aspnet_isapi.dll会通过一个命名管道(named pipe,一种简单的IPC——进程通信机制,具体内容请参考:《命名管道及延伸进程通信学习》)把从...中;这时从线程池获取空闲线程执行程序集(写一个网站发布成两个虚拟目录进行测试,可以看到执行http请求处理的线程不断地变化,两个虚拟目录会出现使用相同线程的情况)。

    3K90

    win20002003下整合IIS+Tomcat5支持jsp

    ;D:Javajdkbin; 测试:在DOS下输入javac回车,出现javavc的使用说明表示你的JDK安装成功 在DOS下输入java回车,出现java的使用说明表示你的环境变量设置成功 2、安装Tomcat...10、IIS6需添加此步骤,(如果是IIS5跳过) 在“Internet信息服务管理器”的“网站”中的“Web服务扩展”上点右键选择“添加一个新的Web服务扩展”,弹出的框中扩展名填jsp(这里的名称无所谓...5.如果上述方法都试过了还无法成功整合的话,可以尝试如下操作:虚拟目录-à属性à虚拟目录选项à配置 添加一个应用程序扩展,扩展名为 .jsp 可执行文件为isapi_redirector2.dll 的绝对路径...,同样添加 .do 对应isapi_redirector2.dll 的应用程序扩展。...6. tomcat 默认端口是8080.从步骤4可以知道,JK2使IIS能够把所有的jsp 请求发送到tomcat ,让tomcat 的8009端口来处理请求,所以不用把tomcat 的默认端口改成8009

    89040

    ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI

    前几天有一个朋友在MSN上问我“ASP.NET 从最初的接收到Http request到最终生成Response的整个流程到底是怎样的?”...IIS的Metadata database维护着一个称为ISAPI Extension Mapping的数据表,负责将不同类型的Resource影射到对应的ISAPI Extension。...IIS分析Request的目标资源文件的扩展名(这里是aspx),通过ISAPI Extension Mapping获知对应的ISPAI为ASP.NET ISAPI,于是加载aspnet_isapi.dll...创建一个托管的运行环境,在CLR初始化的使用会加载两个重要的dll:AppManagerAppDomainFactory和ISAPIRuntime。...作为Host 基于Http Application的IIS来说,这两方面就显得尤为重要了。我们从IIS 5.x到IIS 6 的演变,不难看出IIS 6在前一个版本基础上所作的改进也是基于这两个方面。

    3.4K90
    领券