IIS服务器管道进行隔离一些局限与不足

系统 Windows
文章中,我们知道对于IIS服务器的扩展基本上就体现在自定义ISAPI,但是对于大部分人来说,这不是一件容易的事情。

在使用过IIS服务器的过程中,我们来讲解下IIS服务器的知识。IIS服务器 5.x和IIS服务器 6.0下把两个管道进行隔离至少带来了下面一些局限与不足,例如相同操作的重复执行:IIS服务器与ASP.NET之间具有一些重复的操作,比如身份验证。

动态文件与静态文件处理的不一致:因为只有基于ASP.NET的动态文件(比如.aspx、.asmx、.svc等等)的HTTP请求才能通过ASP.NET ISAPI进入ASP.NET管道,而对于一些静态文件(比如.html、.xml、.img等)的请求,则由IIS服务器直接响应,那么ASP.NET管道中的一些功能将不能用于这些基于静态文件的请求,比如,我们希望通过Forms认证应用于基于图片文件的请求。

IIS服务器难以扩展:对于IIS服务器的扩展基本上就体现在自定义ISAPI,但是对于大部分人来说,这不是一件容易的事情。因为ISAPI是基于Win32的非托管的API,并非一种面向应用的编程接口。

通常我们希望的是诸如定义ASP.NET的HttpModule和HttpHandler一样,通过托管代码的方式来扩展IIS。 对于Windows平台下的IIS来讲,ASP.NET无疑是一等公民,它们之间不应该是“井水不犯河水”的关系,而应该是“你中有我,我中有你”的关系。

为此,在IIS服务器 7.0中,实现了两者的集成。对于集成模式下的IIS服务器 7.0,我们获得如下的好处。

允许我们通过本地代码(Native Code)和托管代码(Managed Code)两种方式定义IIS Module,这些IIS Module注册到IIS中形成一个通用的请求处理管道。由这些IIS Module组成的这个管道能够处理所有的请求,不论请求基于怎样的资源类型。

比如,IIS服务器可以将FormsAuthenticationModule提供的Forms认证应用到基于.aspx,CGI和静态文件的请求。 将ASP.NET提供的一些强大的功能应用到原来难以企及的地方,比如将ASP.NET的URL重写功能置于身份验证之前。采用相同的方式去实现、配置、检测和支持一些服务器特性(Feature),比如Module、Handler映射、错误定制配置(Custom Error Configuration)等。

【编辑推荐】

  1. IIS服务器 6.0中配置HTTP Gzip压缩的步骤
  2. 保护IIS服务器日志安全很重要
  3. IIS服务器中防止被攻击的一些小知识
  4. IIS服务器验证服务器的讲解
  5. 看IIS FTP也玩起了虚拟目录
责任编辑:小霞
相关推荐

2010-05-12 17:45:01

IIS 服务器

2010-05-20 18:19:45

2010-05-12 16:02:30

2010-05-12 17:46:38

IIS服务器

2018-10-29 10:45:44

2011-03-28 16:59:16

nagios监控服务器

2011-11-08 21:12:35

2010-05-19 16:41:40

2013-04-07 09:15:31

2018-06-28 09:38:16

2013-01-18 10:54:33

2018-01-15 09:32:59

即时通信服务器架构

2019-07-09 09:31:50

操作系统电脑技术

2010-05-19 15:00:37

IIS服务器

2018-08-29 08:56:02

Linux服务器安全

2010-12-28 15:39:38

2010-05-21 11:50:54

IIS服务器

2009-08-03 18:16:46

ASP.NET Web

2010-05-17 16:50:38

IIS服务器

2010-05-13 18:32:52

点赞
收藏

51CTO技术栈公众号