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

IIS执行原理

当一个http请求被捕获到,HTTP.SYS会读取配置表,如果对应的应用程序没有启动,则HTTP.SYS会启动IIS相对应的应用程序。具体运行机制可以理解成为: ?...3-1. w3wp.exe会根据IIS中ISAPI扩展读取对应的处理的Dll,用asp.net举例:当用户访问的网站是asp.net平台,则 类型是.cshtml和.aspx文件类型。...根据配置w3wp.exe会加载aspnet_isapi.dll(简称是ISAPI). IIS中应用程序的映射: ? IIS中处理流程: ? 3-2....在vs中写了一段C#代码(或者其它.net平台的语言,此处简单的用C#来说明) ,编译器会把代码转译成IL的中间语言程序。...,JIT是把代码编译成本地指令(这也就是为什么.Net程序首次运行很慢的原因,但你的程序不可能只跑一次,尤其是在服务器上面的程序!)

2.8K21

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

如果一个进程运行于内核模式,那么这个进程就可以访问所有硬件和系统数据;如果一个进 程运行于用户模式,那么这个进程不能直接访问硬件,而且访问系统数据时也会受到限制。...通过在内核模式运行Http.SYS,侦听器可以直接访问TCP/IP协议栈,但是又能够位于www服务之外,这样就不会受到应用程序中代码缺陷的影响,也不会因为应用程序崩溃而出现问题。...有了基于ISAPI的扩展扩展程序,IIS服务器就可以根据客户端请求的资源扩展名,来决定应由哪个ISAPI扩展程序来处理客户端请求,然后就可以将请求转发给合适的ISAPI扩展程序。 ? ?...关于ISAPI: ISAPI(服务器应用编程接口),它为开发人员提供了强大的可编程能力,只要按照标准接口开发不同类型的Web应用程序的ISAPI扩展程序,就能实现对IIS功能上的扩展,从而使IIS可以处理不同类型的客户端请求...IIS管理器提供了应用程序配置功能,可以对不同的客户端请求配置不同的ISAPI扩展程序。ISAPI扩展程序通常以DLL形式存在,可以被IIS加载并调用。

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

    ASP.NET 运行机制详解

    上图就是IIS (服务器软件) 1.浏览器和IIS交互过程: 我们都知道,在互联网上确定一台电脑的位置是使用IP寻址,但为什么当我们平时访问网站时直接输入一个域名也能够访问到某个服务器电脑进而由对方的服务器软件发送响应页面数据给我呢...IIS自身是不能处理像ASPX扩 展名这样的页面,只能直接请求像HTML这样的静态文件,之所以能处理ASPX这样扩展名的页面,是因为IIS有一个ISAPI过滤器,它是一个COM组件。...ASP.NET服务在注册到IIS的时候,就会添加一个Win32的扩展动态库aspnet_isapi.dll。并将扩展可以处理的页面扩展名(如 ASPX)注册到IIS里面。...扩展启动后,就根据定义好的方式来处理IIS所不能处理的页面。...若需要在服务器端处理的请求,则会被传到已注册的扩展模块 中,aspx请求会被分配给aspnet_isapi.dll,让这个程序开始处理代码,生成标准的HTML代码,然后将这些HTML加入到原有的 HTML

    2.4K70

    IIS 5.x与ASP.NET

    ISAPI支持ISAPI扩展(ISAPI Extension)和ISAPI筛选(ISAPI Filter),前者是真正处理HTTP请求的接口,后者则可以在HTTP请求真正被处理之前查看、修改、转发或者拒绝请求...,尽管采用性能最好的命名管道,但是仍然会带来性能的瓶颈; 所有的ASP.NET应用,运行在相同的进程(aspnet_wp.exe)中的不同的应用程序域(AppDomain)中,基于应用程序域的隔离级别不能从根本上解决一个应用程序对另一个程序的影响...我们可以为一个或者多个Web应用创建应用程序池,每一个应用程序池对应一个独立的工作进程,从而为运行在不同应用程序池中的Web应用提供基于进程的隔离级别。...难以扩展:对于IIS的扩展基本上就体现在自定义ISAPI,但是对于大部分人来说,这不是一件容易的事情。...如果HTTP.SYS接收到的HTTP请求是对该Web应用的第一次访问,当成功加载了运行时后,会通过AppDomainFactory为该Web应用创建一个应用程序域(AppDomain)。

    3.5K20

    WCF技术剖析之二:再谈IIS与ASP.NET管道

    ISAPI支持ISAPI扩展(ISAPI Extension)和ISAPI筛选(ISAPI Filter),前者是真正处理HTTP请求的接口,后者则可以在HTTP请求真正被处理之前查看、修改、转发或者拒绝请求...,尽管采用性能最好的命名管道,但是仍然会带来性能的瓶颈; 所有的ASP.NET应用,运行在相同的进程(aspnet_wp.exe)中的不同的应用程序域(AppDomain)中,基于应用程序域的隔离级别不能从根本上解决一个应用程序对另一个程序的影响...我们可以为一个或者多个Web应用创建应用程序池,每一个应用程序池对应一个独立的工作进程,从而为运行在不同应用程序池中的Web应用提供基于进程的隔离级别。...; IIS难以扩展:对于IIS的扩展基本上就体现在自定义ISAPI,但是对于大部分人来说,这不是一件容易的事情。...如果HTTP.SYS接收到的HTTP请求是对该Web应用的第一次访问,当成功加载了运行时后,会通过AppDomainFactory为该Web应用创建一个应用程序域(AppDomain)。

    2K110

    在IIS上部署ASPNETMVC Beta网站

    个人觉得唯一比较有意思的是在配置IIS时,我们可以配置各种自定义的ISAPI扩展名(也在MVC应用配置的,通常在Global.asax中) 第一步:安装MVC。...安装步骤如下:控制面板——>添加删除程序——>添加删除Windows程序——>如果是XP,直接勾选上IIS就可以了,如果是SERVER 2003,通常是在Application Server(中文大概是应用程序服务一类吧...之后按向导可配置站点描述,站点目录,是否允许匿名访问,以及读写权限的配置。 2. 配置站点端口和连接时限。...配置目录和读写权限 点击Configuration,会弹出中间的那个对话框。可以把不用的扩展名选项删掉(更加安全)。...扩展名为:.mvc 动作可选全部也可设定为:GET,HEAD,POST,DEBUG 同时必须选中脚本引擎且不能选择检查文件是否存在选项,确定大功搞成,浏览站点,如果首页仍然不能正常显示,请修改Default.aspx.cs

    2.9K20

    C#实现动态网站伪静态,使seo更友好

    本教程配套的C#源码工程可通过我的github下载。...本教程内容: 伪静态介绍、作用 用代码实现简单的伪静态 ISAPI_REWRITE组件的介绍及使用 1.伪静态介绍、作用 1.1伪静态介绍、作用 1.1.1为什么要伪静态 在搜索引擎优化领域,静态页面的权重是大于动态页面的权重的...为了增强搜索引擎的友好度,提高收录,我们需要实现把动态内容静态化。 1.1.2实现网页静态化 我们很明显可以实现读取数据库内容根据模版生成对应id的静态页面。...id=1的地址改为index-1.aspx页面(具体的伪静态的规则自己可以随便写的,在这里只是举例子),把动态参数去掉。我们在后台写相应的代码实现读取数据显示。...至此我们访问index-1.aspx可以正确显示 ?

    1.1K40

    Http请求处理流程

    ,类似于思考“为什么苹果是往地上掉不是往天上飘?”。对于普通访问者来说,这就像每天太阳东边升起西边落下一样是理所当然的;对于很多程序员来说,认为这个与己无关,不过是系统管理员或者网管员的责任。...你应该会看到如下的画面: ? 应用程序配置 很清楚地就可以看到,所有IIS所能处理,或者叫 ISAPI 所提供代理服务的 文件类型 及其相对应的实际的后台处理程序都在这里清楚地列出来了。...现在我们应该知道:Asp.Net 只是服务器(IIS)的一个组成部分而已,它是一个 ISAPI扩展。...在操作系统启动的时候,IIS首先在HTTP.SYS中注册自己的虚拟路径。 实际上相当于告诉HTTP.SYS哪些URL是可以访问的,哪些是不可以访问的。...举个简单的例子:为什么你访问不存在的文件会出现 404 错误呢?就是在这一步确定的。 如果请求的是一个可访问的URL,HTTP.SYS会将这个请求交给 IIS 工作者进程。

    1.7K20

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

    IIS推出了一种机制,叫做ISAPI的开放扩展,这个东西是一个标准组件(COM组件),他是一个过滤器+跳转程序,如果安装了专门的扩展,那么在访问IIS所不能处理的文件时,如.asp和.aspx文件,IIS...刚才说了,ISAPI首先是个过滤器,他在注册到IIS的时候,会把每个扩展可以处理的文件扩展名注册到IIS里面。...扩展启动后,就根据定义好的方式来处理IIS所不能处理的文件,然后把控制权跳转到专门处理代码的进程中。...如果启用了 IIS 6 进程模型,请求将自动在辅助进程 (w3wp.exe) 中排队,此辅助进程用于处理应用程序所属的 IIS 应用程序池。...如果请求已经由特殊的辅助进程进行处理,则不能再将它指定到其他进程,除非原始进程已取消。 4 完成后,响应被发送到打开了异步管道的 aspnet_isapi。

    1.1K20

    WCF技术剖析之二:再谈IIS与ASP.NET管道

    ISAPI支持ISAPI扩展(ISAPI Extension)和ISAPI筛选(ISAPI Filter),前者是真正处理HTTP请求的接口,后者则可以在HTTP请求真正被处理之前查看、修改、转发或者拒绝请求...,尽管采用性能最好的命名管道,但是仍然会带来性能的瓶颈; 所有的ASP.NET应用,运行在相同的进程(aspnet_wp.exe)中的不同的应用程序域(AppDomain)中,基于应用程序域的隔离级别不能从根本上解决一个应用程序对另一个程序的影响...我们可以为一个或者多个Web应用创建应用程序池,每一个应用程序池对应一个独立的工作进程,从而为运行在不同应用程序池中的Web应用提供基于进程的隔离级别。...; IIS难以扩展:对于IIS的扩展基本上就体现在自定义ISAPI,但是对于大部分人来说,这不是一件容易的事情。...如果HTTP.SYS接收到的HTTP请求是对该Web应用的第一次访问,当成功加载了运行时后,会通过AppDomainFactory为该Web应用创建一个应用程序域(AppDomain)。

    1.6K41

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

    (或者说是内存)是不能直接互相访问的, 而线程可以, 线程一定会依附在某一个进程上执行.我举个例子, 你在Windows下开一个IE浏览器, 这个IE浏览器是一个进程..../article/details/2425420中周公的回答 进程:属于操作系统上的概念,一个进程占有一个内存地址,是应用程序与应用程序之间的边界,进程之间不能共享代码和数据空间(也就是不能直接交互...(扩展程序)映射记录(如.aspx、.ashx等对应aspnet_isapi.dll),如果metabase文件中没有就再检查是否为不受服务器端保护的文件(受服务器端保护:App_Code文件夹下的文件...(iis5.X)或多个Application实例(iis6.x)访问),AppDomain之间不能直接访问对方的变量和状态。...注:为了避免用户应用程序访问或者修改关键的操作系统数据,windows提供了两种处理器访问模式:用户模式(User Mode)和内核模式(Kernel Mode)。

    3K90

    HttpHandler介绍

    而为了能使用这个自定义的HttpHandler,我们需要在应用程序目录下的Web.config中注册它。...verb指的是请求此文件的方式,可以是post或get,用*代表所有访问方式。type属性由“,”分隔成两部分,第一部分是实现了接口的类名,第二部分是位于Bin目录下的编译过的程序集名称。...通过第一章学到的ISAPI的知识,再结合本章学到的关于HttpHandler的知识,很容易想到:我们可以自定一个以 .rss 作为后缀名的文件来实现 Rss 源,比如说Article.rss。...至于为什么可以这样,将会在 《Asp.Net 构架与安全机制 Part.5 – 页面生存周期与编译模型》中解释。 Step.5 在IIS 对ISAPI进行设置。...点击“添加”,设置“可执行文件”为“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,设置“扩展名”为“.rss”,点“确定

    1.3K20

    在Windos 2003服务器上安装IIS+PHP+MYSQL

    1、安装好2003后,安装360打补丁,不喜欢360的可以通过系统自动更新安装补丁,或者其他软件也行。...筛选器”标签里找到并点击“添加”按钮,在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:PHP ,再将可执行文件指向php5isapi.dll 所在路径,如:d:\php\php5isapi.dll...7、打开“Web站点属性”窗口的“主目录”标签,找到并点击“配置”按钮,在弹出的“应用程序配置”窗口中找到并点击“添加”按钮,在弹出的窗口中新增一个 扩展名映射,扩展名为 .php ,单击“浏览”将可执行文件指向...您可以将index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档 9、新增一个WEB服务扩展,扩展名.php,要求的文件php5isapi.dll,设置扩展状态为允许...MIME类型,新建扩展名“.FLV”,MIME类型值为“flv-application/octet-stream”,这样就可以实现win2003下网页播放flv文件的功能

    3.5K20

    「 扫盲 」Web服务器和应用服务器的区别

    你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB服务器,如IIS、apache,nginx等。...应用服务器 提供处理逻辑的应用容器,这里的应用很多,如果java应用、C#应用、ruby应用等。应用服务器提供访问商业逻辑的途径以供客户端应用程序使用。...Web服务器和应用服务器的关系 WEB服务器一般是通用的,而应用服务器一般是专用的,如Tomcat只处理JAVA应用程序而不能处理ASPX或PHP。...而Apache是一个WEB服务器(HTTP服务器),他的信息源可以是配置在tomcat中的JAVA应用,也可以是ASPX应用。 Web服务器只负责处理HTTP协议,只能发送静态页面的内容。...而JSP,ASP,PHP等动态内容需要通过CGI、FastCGI、ISAPI等接口交给其他程序去处理。这个其他程序就是应用服务器。

    3.1K21

    301跳转与URL转发

    ,客户通常都会按照:”www.++.com”的形式来访问站点;如果你没有做这个www的解析那么”www.++.com”就不能访问,对于不懂技术或者不明白解析的客户来讲,这个问题可能会造成他不能访问你的站...,因为他只是知道用带有”www”的形式访问你的站点,可能不知道”++.com”也是同样可以访问的!...可以通过使用服务器技术实现的url转发功能(url-forwarding 或 url redirect),转发到带www的域名来访问。...301重定向的作用 为什么要使用301转向?...另外,如果你的Windows虚拟主机空间支持ISAPI_Rewrite,那么在IIS下利用ISAPI_Rewrite不仅可以实现url 重写,还可以用来设置301转向,下面分别是三个版本的ISAPI_Rewrite

    18K30

    IIS6中怎么配置PHP?具体方法如下

    压缩包解压到一个目录,如c:php 2,设置环境变量,我的电脑->属性->高级->环境变量->系统变量, 在变量path后面追加php和php扩展的路径,分别是,C:php;C:phpext 3,打开IIS...管理器, 1)添加一个新的WEB服务扩展,对应的文件为C:phpphp5isapi.dll,名称自定,如PHP ISAPI 2)选择 网站,打开属性窗口,选择 ISAPI 筛选器,添加一个筛选器,名称自定...,如PHP,对应的文件还是 C:phpphp5isapi.dll 3)选择 主目录,点击 配置 按钮,添加一个应用程序扩展名映射,扩展名填 .php,可执行文件还是 C:phpphp5isapi.dll...,我本地的访问路径为 http://localhost:9996/ 注意,如果你创建网站时指定了IP地址,要将localhost换为相应的IP地址。...4,访问http://localhost:9997/index.php 即可,就会进入phpMyAdmin登录界面,输入2中配置的用户名,密码,就可以进入管理mysql了。 完毕。

    2.2K20

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

    IIS服务器扩展 由于IIS服务器在设计时引入了开放的ISAPI接口标准,具备极高的可扩展性。在核心组件不变的情况下可灵活支持不同类型不同版本的ASP.NET应用程序。...Web应用程序的ISAPI扩展程序,就能实现对IIS功能上的扩展,从而使IIS可以处理不同类型的客户端请求。...IIS管理器提供了应用程序配置功能,可以对不同的客户端请求配置不同的ISAPI扩展程序ISAPI扩展程序通常以DLL形式存在,可以被IIS加载并调用。...有了基于ISAPI的扩展扩展程序,IIS服务器就可以根据客户端请求的资源扩展名,来决定应由哪个ISAPI扩展程序来处理客户端请求,然后就可以将请求转发给合适的ISAPI扩展程序。...这里的AppDomain指的是.NET中引入的应用程序域的概念,程序集管理的最小逻辑单位为应用程序域,包括四个重要的机制,隔离、卸载、安全、配置,它可以理解为一个进程或一个边界或一个容器,它是应用程序的执行环境

    1.4K80
    领券