WSS3.0技术内幕-----SharePoint体系结构(1)(翻译)

SharePoint体系结构

IISASP.NET入门

本章探讨了如何WSSMicrosoft Internet信息服务(IIS)和ASP.NET集成的核心架构细节。我们将首先看一下的基本概念和与IISASP.NET使用的一些术语。然后我们将介绍如何WSS小组在IIS上设计并实施了WSS 3.0中扩展ASP.NET框架。

 

本章的主要目标是为您了解Web应用程序的内部工作以及如何初始化WSS的运行环境。正如您将会看到,WSS的团队已经扩展了许多ASP.NET标准组件,丰富了其内部的功能,作为WSS中的组件进行使用。

 

在本章结束时,我们将介绍应用程序页,并讨论应用程序页面成为WSS的体系结构的基本方面。我们还将走过创造您自己的自定义解决方案,并编写应用程序页面底层的代码,访问WSS的对象模型的过程。

 

IIS Web站点和虚拟目录

WSSASP.NETIIS 6.0中依靠供应基本监听机制来处理传入的HTTP请求,并提供启动和运行Web服务器上的工作进程管理的基础设施。您了解如何在各种因素相互组合应该从一个IIS Web站点和虚拟目录的基本概念开始。

 

一个IIS Web站点提供到IIS Web服务器基础设施的一个切入点。每个IIS Web站点配置为侦听和处理传入的HTTP请求符合特定标准。例如,IIS网站可以被配置来处理请求在一个特定的IP地址或端口号,也可以改为使用诸如http://Extranet.Litwareinc.com一个特定的主机头,路由到Web服务器。

 

IIS自动创建并配置了IIS Web站点命名的默认网站,为未来通过端口的80侦听HTTP请求的地址在本地Web服务器的支持。也可以创建和配置其他IIS网站通过使用IIS管理工具的网站。

 

每个IIS网站定义一个特定的URL空间。例如,标准的定义默认Web站点的URL空间来处理的任何传入请求的URL映射到以下方式:http://www.Litwareinc.com/ *. 你可以想像,一个无限数量的网址可以创建在这个网址的空间。 IIS处理针对他们的路由默认Web站点到这些网址的一个传入的请求。

 

每个IIS Web站点配置为映射到一个根目录,这是对托管的Web服务器的文件系统的物理目录。例如,标准配置为IIS映射默认Web站点的根目录位于C/ Inetpub / wwwroot文件。在最简单的路由情况下,IIS传入的HTTP请求映射到根目录内的物理文件。例如,IIS将响应请求为http://www.Litwareinc.com/page1.htm通过简单地载入了位于c文件内容:/ Inetpub / wwwroot文件/ page1.htm到内存和流回客户端。

 

其中一个IIS Web站点的一个重要方面是,它控制是否需要验证传入的请求,如果有,哪些身份验证协议使用。例如,默认Web站点可能是打算作为面向公众的互联网用户的Web站点。因此,它可能被配置为允许匿名访问,并支持基本身份验证。辅助IIS网站打算专门为员工在公司内使用局域网可能被配置为禁止匿名访问和支持,而不是基本身份验证集成Windows身份验证。

 

除了IIS网站,IIS支持创建和虚拟目录的配置。虚拟目录是一个实体,它定义URL空间的儿童在其父母的IIS Web站点的URL空间嵌套。就像一个IIS Web站点,虚拟目录配置了一份关于托管的Web服务器文件系统的根目录。 IIS提供的界定在任何地点虚拟目录的根目录的灵活性。例如,您可以创建一个有如http://www.Litwareinc.com/Sales URL空间内的默认网站的虚拟目录。当创建此虚拟目录,你可以配置为如C文件系统目录的根目录:/ WebApps / Site1

 

IIS提供了一个管理工具命名为Internet信息服务(IIS)管理器“,如图2-1所示。此实用工具允许你检查,创建和配置IIS网站和当前计算机虚拟目录。它可以通过使用启动快捷方式开始|管理工具| Internet信息服务(IIS)管理器。如果您不是已经熟悉这个工具,你可以启动它来学习如何用它来检查和配置IIS网站和虚拟目录的属性。

 

 

 

请注意,IIS配置跟踪有关其IIS网站,并在诸如IIS元数据库中已知的一个仓库虚拟目录的信息。对每个方面的文件系统,结束生命的IIS元数据库的Web服务器运行IIS。例如,当您创建和配置IIS Web站点使用IIS管理实用程序,IIS的轨道以书面项,以本地IIS元数据库这些变化。

 

代替使用IIS管理工具,还可以自动创建和配置通过编写脚本或托管代码编写IIS网站和虚拟目录的过程,程序对IIS的对象模型。这个过程中,通常这样做时,Web场环境中进行新的网站滚动,因为相同的IIS元数据库设置必须在每个前端Web服务器适用于农场。

 

ISAPI扩展和ISAPI过滤器

在最简单的路由情况下,IIS的简单地图传入的请求,在一个IIS Web站点或虚拟目录的根目录的物理文件。但是,IIS还支持Internet服务器应用程序编程接口(ISAPI)编程模型,它提供了更复杂的路由方案的机会。特别是,在ISAPI编程模型,可配置的IIS Web站点或虚拟目录,以便传入请求触发自定义代码在Web服务器上执行。

 

ISAPI编程模型中,介绍了与IIS的原始版本,并继续提供为IIS创建定制组件的最低水平。在ISAPI编程模型组成:两个主要组件类型ISAPI扩展和ISAPI过滤器。

 

ISAPI扩展是一个组件的DLL了一个进入的请求端点的作用。基本概念是,IIS可以将传入的请求映射到一个端点触发的代码在一个ISAPI扩展DLL执行。 ISAPI扩展DLL必须在Web服务器上安装和配置在任何一个IIS Web站点或虚拟目录的水平。配置通常涉及通过使用一个IIS应用程序映射的ISAPI扩展特定文件扩展名。

 

虽然ISAPI扩展为端点,一个ISAPI筛选器服务扮演一个拦截器的作用。一个ISAPI过滤器安装并在IIS Web站点级别配置。一旦安装,一个ISAPI筛选器拦截所有针对的IIS Web站点的传入请求。基本概念是一个ISAPI筛选器可以提供前处理和后每一个传入的请求处理。 ISAPI过滤器通常创建为一个IIS Web站点,如自定义身份验证,并要求记录,低级别的功能。

 

自定义的ISAPI组件的发展并不是很受欢迎的原因主要有以下几个。首先,自定义ISAPI组件很难设计,开发和调试,因为他们必须在托管C + +编写,需要复杂的编码,例如线程同步技术。大多数开发人员的工作水平以上的ISAPI和利用,如ASPASP.NET框架。虽然您可能永远不会被要求写一个ISAPI组件,但是对于理解如何把ISAPI组件适合场景中是相当重要的。

 

应用程序池和IIS工作进程

IIS提供了一个被应用程序池使用的管理IIS工作进行的灵活的基础架构。应用程序池是一个可配置的实体,允许您控制IIS如何映射IIS网站,并在IIS工作进程情况下的虚拟目录。请注意,IIS工作进程实例都使用可执行推出名为程序w3wp.exe,显示如下:

 

 

IIS的路由体系结构是受一个内核级的设备驱动程序命名Http.sys控制的。该设备驱动程序侦听传入的HTTP请求,并使用IIS元数据库中的信息,以把他们的任何实例的程序w3wp.exe与目标相关的应用程序池。如果Http.sys的确定的目标应用程序池没有运行的程序w3wp.exe例如,对需求推出新的实例来处理请求。

 

每个IIS网站和虚拟目录,可以配置为运行在它自己的独立的应用程序池。相反,您可以配置许多不同的IIS网站和虚拟目录中运行同一个应用程序池,以便提高效率。关键标准应该是隔离和效率之间的折中。为了实现更大的隔离意味着你必须运行多个实例程序w3wp.exe,这会影响效率。为了实现更高的效率意味着你必须映射多个IIS网站和虚拟目录,以较少的情况下在IIS工作进程,孤立的妥协。

 

众所周知每一个应用程序池设置具有重要的应用程序池标识。应用程序池标识配置与特定的Windows用户帐户或者是在Active Directory目录服务域上的Web服务器域帐户火本地帐户。当Http.sys的推出为特定应用程序池的程序w3wp.exe的新实例,它使用的应用程序池标识初始化Windows安全令牌的进程令牌服务。这一点很重要,因为它确立了“运行的”身份代码运行在IIS工作进程。

 

默认情况下,IIS使用本地网络服务帐户的身份当您创建一个新的应用程序池。但是,您可以通过任何其他用户使用的应用程序池标识帐户你喜欢。当部署ASP.NETWSS基于Web站点,建议您配置一个域帐户,而不是网络服务帐户的应用程序池标识。这是尤其是在Web场环境中,当你需要同步横跨多个前端应用程序池。

 

重新启动应用程序池

当用于ASP.NETWSS开发,你偶尔会发现有必要重新启动应用程序池所使用的测试代码。这可能是这样,当您需要刷新的功能在您正在开发的定义,一个XML文件,或者您可能需要重新加载一个从全局程序集缓存程序集DLL的新版本。你可以重新启动与运行在命令行下面的命令IIS中所有相关的过程:

 

运行IISRESET或者重新启动,

 

您可以只用通过运行一个名为VB脚本宏已是IIS 6.0的,因为Windows Server 2003Service Pack 1安装标准的一部分iisapp.vbs特定的应用程序池关联的进程。您必须通过使用诸如cscript.exe脚本宿主,此脚本。当您调用cscript.exe,然后包括向iisapp.vbs路径,您可以通过重新启动一个特定的应用程序池/参数随着IIS应用程序池名称。

 

cscript.exe ç/Windows / System32 / iisapp.vbs / 1“默认应用”使用这种技术的主要优点是速度快于全IISRESET命令,这与IIS重新启动有关的所有过程。使用此命令,而不是一个IISRESET命令可以节省几秒钟在这里和那里。

 

ASP.NET2.0 Framework

ASP.NET框架代表了上面的IISISAPI编程模型生产率的显着一层。如果您对ASP.NET开发熟悉,你知道,它提供了有管理的书面语言,如C,你的应用程序逻辑#或Visual BasicNET中的便利,并与所有生产率由Microsoft Visual Studio提供的面向可视化设计工作。 ASP.NET框架还提供很多其他宝贵的抽象协助等领域的国家管理,数据绑定,导航开发人员和数据缓存。

 

ASP.NET框架是作为一个名为aspnet_isapi.dllISAPI扩展被实现的。 ASP.NET的基本配置包括注册为常见的ASP.NET应用程序文件扩展名包括地图的。aspx,的。ascx,。ashx的,和。在一个IIS Web站点或虚拟目录级别asmx文件。当IIS看到的是一个与传入的请求针对这些扩展一个文件时,它请求转发到aspnet_isapi.dll的,它有效地越过了ASP.NET框架的控制。的方式在ASP.NET框架的进程要求在很大程度上取决于目标文件的扩展名而定。

 

ASP.NET框架执行每个IIS网站定位的要求,并作为自己的每一个独立的ASP.NET应用程序的虚拟目录。 ASP.NET应用程序背后,都有一个根目录包含的文件集。这种架构推动部署ASP.NET应用程序非常简单X -副本样式。您只需创建一个Web服务器计算机的新的虚拟目录,并复制到根目录的ASP.NET应用程序文件。当然,这是一个多一点的,因为有一个虚拟目录创建Web场环境沉闷乏味,而文件的复制,必须在每个前端农场Web服务器复制。

 

每个ASP.NET应用程序可以独立配置,增加了在其根目录中的Web.config文件。在Web.config文件是一个基于XML的配置元素文件,控制行为的各种功能的ASP.NET框架,如汇编,页面呈现,和状态管理。一个简单的web.config文件如下:

<configuration>

  <system.web>

    <customErrors mode="On" />

    <httpRuntime maxRequestLength="51200" />

    <authentication mode="Windows" />

    <identity impersonate="true" />

    <authorization>

      <allow users="*" />

    </authorization>

  </system.web>

</configuration>

 

重要的是要注意,ASP.NET框架运行的一定程度的隔离每个ASP.NET应用程序。这是真的,即使在一个情景时,您已设定多个ASP.NET应用程序运行在相同的IIS应用程序池。 ASP.NET框架提供了ASP.NET应用程序之间的隔离内的IIS工作进程运行相同的实例通过加载到一个单独的.NET框架的AppDomain

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值