首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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.1K21

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

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

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

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

2K70

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)。

2.7K20

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.5K110

在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.1K20

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

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

88840

Http请求处理流程

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

1.3K20

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

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

84320

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.2K41

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)。

2.3K90

在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文件功能

2.7K20

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”,点“确定

1K20

「 扫盲 」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等接口交给其他程序去处理。这个其他程序就是应用服务器。

2.5K21

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

15.4K30

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了。 完毕。

1.9K20

Windows 2003下IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置

[attachment=888] 打开“Web 站点属性”窗口“主目录”标签,找到并点击“配置”按钮, 在弹出应用程序配置”窗口中找到并点击“添加”按钮, 在弹出窗口中新增一个扩展名映射,扩展名为...您可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档。...net stop iisadmin net start w3svc 然后在“Internet 服务管理器”左边“WEB服务扩展”中设置 ISAPI 扩展 允许, Active Server...IIS6.0版本,一般存在IIS 6.0中早期版本 ISAPI 筛选器不能加载,所以有可能PHP4.x版本ISAPI 筛选器不能加载导致无法完成PHP配置,2000系统一般装PHP5.X版本也很少有问题...]SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('你ROOT管理密码'); 然后再登陆PHPMYADMIN就可以了,登陆后可以在权限里面添加修改设置帐号和访问权限

2.3K20

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

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

1.1K80
领券