使用在UNC服务器上的远程存储内容及NAS设备部署和配置IIS6.0

简介
Web 服务器(如:IIS)的一项常规功能就是接受来自 Web 客户端对文件的请求,通过获取文件并将内容传输回客户端来响应请求。在一些情况下, 传输到客户端的文件会被存储在 IIS 本地服务器上。这是考虑到速度的最佳设计,也确保了文件一经更新即可传送新的内容。对于传递一小组易于管理的文件的几个 Web 站点,从便利性和性能的角度考虑,在 IIS 服务器上本地托管内容是最佳选择。
然而,在许多情况下将文件存储在 IIS 服务器上,既不实际也不可能实现。某些系统需要管理许多文件,并将文件放置在 IIS 服务器上,把内容管理任务和 IIS 管理任务同时结合在一个相同的系统。如果工作负载能够由单个服务器处理,就有益于本地保存内容,但当需要通过添加 Web 服务器进行外扩时,引发了管理复杂性,因为文件系统必须在服务器间不断地进行复制。复制需要消耗时间,这可能导致传送过期的内容或造成其它一些同步问题。另外,需要管理多台服务器的文件系统安全性,这又进一步加剧了复杂性。最后,为满足文件存储增长的需要,您必须在每一台服务器上扩展存储容量,从而需要增加硬件,而这样就带来了额外的开支,同时由于硬件故障,更易出现停机状况。
为减轻这些问题,IIS 可以作为前端来传送存储在远程系统上的内容。本文的主要介绍 IIS 6.0 和远程服务器的配置和调整,其中远程服务器作为文件、应用程序或其它可供使用 UNC (通用命名惯例)路径名的 IIS 使用的网络资源的集中式存储库。虽然本文仅限讨论对作为文件服务器的 Microsoft 服务器操作系统的访问,但也提供了许多适用于其他通过 UNC 路径名访问远程文件共享的存储解决方案的信息,如:NAS 设备。



体系结构
无论您的服务器的需求是简单的轻负载还是复杂的重负载,深入了解 IIS 6.0 和 Windows Server 2003 的功能和技术以便使用 UNC 路径名远程访问内容,将有助于实现您的设计。

分布式方案
作为 IIS 启用远程存储和分布情况的一个例子,考虑到一个教育机构中有 100 位教员在制定课程表和考卷,并为他们的班级邮寄分数(见图 1)。IIS 可用于在每位教员的系统上映射单独的共享文件夹,使他们能快速、轻松地向学生发布重要内容。在这种情况下,IIS 作为运用远程存储器的分布式信息集中器。



图 1:IIS 6.0 作为运用远程存储器的分布式信息集中器
查看大图




通过运用分布式文件系统(DFS)作为提取低层目录结构的途径,可将这种系统设计地更加可靠和更具可管理性。例如,如果 Anthro101 被映射到属于 DFS 目录的一个 UNC 路径名,当下学期教员更换时,您只需要在分布式文件系统(DFS)中将 \\Instructor\Anthro101 更改 \\NewInstructor\Anthro101 即可,而无需更改 IIS 配置。

ISP 方案
IIS 也可对 Internet 服务提供商(ISP)方案提供远程内容方面的优点。在一个共享的托管环境中,Internet 服务提供商(ISP)可以在单个服务器上拥有数千个 Web 站点,内容散布到许多站点上,但每个站点的流量较低。通过将内容从 IIS 服务器中导出,Internet 服务提供商(ISP)可以在单个冗余磁盘阵列(Redundant Array of Independent Disks,RAID)或其它存储解决方案上为多台服务器存储内容(见图 2)。Internet 服务提供商(ISP)在存储器上的投资通过集中而非分散于众多 Web 服务器而实现了优化。这减少了硬件故障的出现,并简化了恢复策略。



图 2:IIS 从远程存储设备分布信息
查看大图。




高容量方案
高容量 Web 站点经常使用由多台统一配置的 IIS 服务器组成的 Web 场,这些 IIS 服务器从负载平衡器接收流量。在此方案中,对 Web 场中的服务器来说,访问一个或多个 Microsoft SQL 服务器群集是很普遍的,这些群集服务器经常使用 Microsoft Cluster Server(MSCS)作为一个公共数据存储库。注意:这时并不在文件服务器间运用网络负载平衡(NLB),因为在 Microsoft 网络中使用的服务器消息块(Server Message Block,SMB)通信采用独立的话路。这一高可用性方案为运行于 IIS 6.0 的应用程序提供一个公共数据库,后者可在任何一台服务器出现故障时,运用故障转移功能。同样,IIS 6.0 所提供的内容和应用程序可以托管于一个群集文件服务器或 NAS 设备,因此任何一个远程存储器的故障对用户来说都是透明的。(见图 3)。



图 3:在高容量和 Web 场方案中,多台 IIS 服务器为其应用程序和内容提供了一个公共数据库
查看大图。




有关设计高可用性服务器系统的更多信息,请登陆:http://www.microsoft.com/technet/archive/windows2000serv/plan/hiavsys.mspx.



访问远程内容
考虑到各方利益,应对集中式内容权衡利弊。虽然在 IIS 服务器上远程存储器给于管理员更多的选项,但是带来了额外的安全要求。

登录 IIS
当用户在 Web 浏览器中键入一个 URL,在 IIS 上访问内容时,IIS 总将用户与某个用户帐户相关联。若启用匿名访问,同时 Web 站点和 NTFS 许可允许请求访问,将对用户分配匿名帐户,通常为:IUSR_<ComputerName>。否则,用户必须使用对所请求的资源启用身份验证方法之一进行身份验证。与用户相关联的用户名和密码就是用户凭证。检查本地 NTFS 许可请求的用户安全标识符(SID)以确定访问许可。据说,IIS 代表用户启动的应用程序运行于用户的安全环境。

访问远程文件服务器
当用户从 IIS 请求通过 UNC 路径名映射到远程文件服务器的信息时,文件服务器在授予用户访问许可之前将要求 IIS 执行身份验证。在 IIS 4.0 和 IIS 5.0 中,当创建一个其内容位于 UNC 共享区中的新的 Web 站点或虚拟目录时,IIS 会提示管理员针对用户名和密码凭证创建站点,如图 4 所示。用户名和密码存储在元数据库中,以便用于在共享区上进行身份验证,从而在 Internet 服务管理器中查看共享文件。因此,用户在“用户名”文本框中键入的用户名在远程文件服务器中必须是一个有效的用户,或者,如果 IIS 服务器和文件服务器都是域成员,键入的用户名必须是域用户。



图 4:虚拟目录创建向导(IIS 4.0 和 IIS 5.0)
查看大图。




当一个 Web 用户访问 Web 站点或虚拟目录时,IIS 在元数据库中检索凭证,并使用其在 UNC 共享区上执行身份验证。
例如,如果有 100 位不同的用户在 IIS 上进行身份验证,并请求访问远程文件服务器,IIS 通过每个用户凭证授权对存储在本地磁盘的内容的访问。对远程存储的内容来说,IIS 不使用已验证的用户凭证,而是将管理员为 Web 站点创建的用户名和密码凭证提交给远程服务器来授权访问。运用单一用户凭证传送内容是一项有效的技术,可确保远程内容总是可用;然而,这样同时降低了用 NTFS 许可权保护这些内容安全的有效性和审查的实用性。
与 IIS 4.0 和 IIS 5.0 一样,在 IIS 6.0 中,IIS 管理器仍然允许您配置一组固定的凭证,或者您可以将用户凭证提交给文件服务器。在 IIS 6.0 中,这种通行身份验证(有时称为用户委派)属于默认的配置,如图 5 所示。



图 5:虚拟目录创建向导(IIS 6.0)
查看大图。




启用时,IIS 6.0 可将用户凭证提交给远程系统,以便管理员可以在较以前更高的精细层次上保护和核查远程内容。另外,在运用通行身份验证时启动的驻留于文件服务器的应用程序均运行于用户的安全环境下。
在 IIS 管理器中看到的更改反映了元数据库中的底层更改以及 IIS 目前对远程文件服务器运用身份验证凭证的方式。首先,当 “UNC 用户名”和 “UNC 密码” 元数据库属性是空白时,已验证的用户凭证将被发送到远程服务器,而不会被保存在元数据库中。其次,如果提交已验证的用户凭证用于验证用户,而所提交的凭证是错误的,服务器将向 Web 浏览器返回一个 401 错误(未经授权)。如果提交“UNC 用户名”和 “UNC 密码”用于验证用户,而所提交的用户名和密码是错误的,将会返回一个 500 错误(内部服务器错误)。IIS 错误信息提供了最小的必备信息量,以便通知合法用户阻止黑客工具尝试确定如何突破 IIS 安全防护的企图。
图 6 简要描绘了针对 IIS 所处理的所有内容执行的身份验证过程,包括所有运行于正确的用户环境的静态内容,如:.gif 文件和 HTML 页面、脚本映射文件、CGI 脚本和 ISAPI 扩展 DLL(如:ASP 和 Microsoft ASP.NET)。ISAPI 筛选器在工作者进程身份环境下运行。工作者进程默认作为网络服务运行,网络服务是具有最小许可权的内部服务帐户。如要了解关于 IIS 体系结构和工作者进程身份的更多信息,请参阅“IIS 概述”。



图 6:针对 IIS 执行或检索的所有内容的身份验证过程
查看大图。




工作组环境中的通行验证
在工作组环境中,所有用户帐户都是本地帐户。只要 IIS 和文件服务器拥有用户名和密码均相同的用户帐户,使用 Basic 验证的通行验证就仍然有效。该配置很快会变成管理负担,从而无法得到广泛实施。在这类环境中,指派一个特别针对同 UNC 连接配合使用的单一用户帐户,可能是最佳选择。

域环境中的通行验证
在域环境下,如果您使用应与安全套接字层(SSL)一起实施以加密用户名和密码的 Basic 验证或 Kerberos,通过综合 Windows 身份验证,通行验证在无需额外配置的情况下即可运作。当然,前提是文件服务器和 IIS 都属于同一个域或信任域的成员。Windows Server 2003 有一个新增的特性,称为强制委派,允许您以更安全的方式进行委派,并委派其他种类的登录凭证(包括 Basic 和 Kerberos)。下面提供了更多有关设置“强制委派”的信息和指导。您可以在“Windows Server 2003 帮助”中查找附加信息。
评论(8)

Windows Server 2003 强制委派
委派是一种将用户凭证从一台服务器传递给另一台服务器的功能,无需重新对用户执行身份验证。Windows 2000 支持委派,但您无法对系统上特定的一组服务执行强制委派,从而难以安全地执行系统的功能。另外,委派只受 Basic 和 Kerberos 协议支持。
Windows Server 2003 使用强制委派(有时称为:Service4User2Proxy),委托 IIS 将委托凭证授予远程服务器上特定的服务列表。在网络上执行强制委派的能力为配置运行IIS 的 Windows Server 2003 文件服务器带来了新的可能性;来自用户的凭证被传递给指定计算机上的 指定服务。这让您可以使用基于域的用户或组,而不是针对来自 IIS 服务器的 UNC 访问的单一指定用户来保护远程内容上的 NTFS 许可。

对身份验证运用协议转换
当 Windows Server 2003 文件服务器启用了委派功能时,您就可以对远程服务器委派通过 NTLM、Basic、Digest、客户端凭证和 Kerberos 身份验证获得的用户凭证:客户端可以在使用任何上述身份验证协议的 IIS 上进行身份验证,同时 IIS 可以委派使用 Kerberos 功能的凭证。Windows Server 2003 的这个特点称为协议转换(Protocol Transition),有时称为:Service4User2Self,因为 IIS(服务)能够代表经验证的用户获得一项服务。这是非常合理,因为 IIS 已经验证完用户,并能够告知 Kerberos,它信任用户的身份,允许用户在其上进行操作。强制委派与协议转换相关联,允许 IIS(服务)使用用户的服务权证,请求 Kerberos 域控制器(KDC)对远程服务器(代理)授予一个权证。该权证只可以委派给域管理员所指定的远程服务器上的服务,因此称为强制委派。这给了您最大限度的灵活性来选择 IIS 上的用户,并确保了通过通行验证安全接入网络资源。
最后,IIS 发出的服务权证被远程文件服务器用于授权访问所请求的共享区、目录和文件,上述对象均受 ACL 的保护。服务权证代表域用户身份,如:MyWebSiteAnonymousUser。有关身份验证、协议转换、强制委派和授权的整个过程如图 7 所示。



图 7:强制委派下的授权
查看大图。




协议转换和 NTLM
举一个协议转换的例子,如果您的客户端通过使用 NTLM 的综合 Windows 身份验证在 Web 服务器上进行身份验证,IIS 上的用户令牌就没有足够的许可权可以访问其他服务器,如文件或 SQL 服务器。因此,针对通过 NTLM(或任何 Basic 或 Kerberos 的其他方法)进行验证的用户的通行验证将失败。Windows Server 2003 允许您配置 Microsoft Active Directory,从而采用 NTLM 的登录可以获得委派授权(详见以下说明)。一旦您启用了这项委派,Web 服务器收到的令牌就属于 Kerberos 权证,其拥有访问其他服务器的许可权。基本上,基于 NTLM 的令牌可以升级到基于 Kerberos 的权证。参见 Windows Server 2003 文档,了解更多详细信息。

IIS 5.0 隔离模式中的强制委派
如果您已经从 IIS 5.0 升级到了 IIS 6.0,IIS 6.0 默认运行于 IIS 5.0 隔离模式。在 IIS 5.0 隔离模式中,进程以外的应用程序作为本地 IWAM_<ComputerName> 帐户运行,从而妨碍了强制委派的正常运作。作为本地帐户运行的进程不能代表已验证的用户获得 Kerberos 权证。当时,可以通过切换 IIS 使之运行于工作者进程模式,启用强制委派。运行于工作者进程隔离模式的工作者进程将作为网络服务用户帐户运行,即作为域中具有充分权限以委派凭证的计算机帐户。


设置服务器的委派功能在 Windows Server 2003 上设置委派功能的方式取决于您是否支持一个同时拥有 Windows 2000 和 Windows Server 2003 域控制器的网络。当同时支持 Windows 2000 and Windows Server 2003 域控制器时,Windows Server 2003 必须运行于混合模式。这限制了您在整个域林使用 Windows 2000 委派功能。
在 Windows 2000 混合域中设置委派功能在 Web 服务器域的域控制器上:
1.
单击开始管理工具,再单击活动目录用户和计算机
2.
必要时展开域(如:iishost.microsoft.com)和“计算机”文件夹。
3.
在右边的方框中会列出您的域中的计算机。右击 Web 服务器计算机名,再单击属性
4.
常规选项卡上,如图 8 所示,确定已经选中了信任计算机可执行委派复选框。
5.
在提醒您不能随便执行此操作的消息框中,单击确定

图 8:在混合模式域中设置服务器的委派功能。
查看大图。


重要须知: 仅在所需的服务器上启用“信任计算机可执行委派”,必须在 Web 服务器上进行设置,但对于远程文件服务器则没有此要求。
在 Windows Server 2003 域中设置委派功能在不支持 Windows 2000 域控制器的 Windows Server 2003 域中设置委派功能,允许您使用协议转换和强制委派。
校验您的域处于 Windows 2003 Server 模式下
1.
单击开始管理工具,再单击活动目录用户和计算机
2.
在左边的方框中选择域。
3.
在菜单上单击操作,再选择提升域功能等级
将弹出“提升域功能等级”对话框,如图 9 所示。如果您的域处在 Windows 2000 本级模式或 Windows 2000 混合模式下,您需要将其提升到 Windows Server 2003 模式。
如要提升域功能等级
1.
继续上述步骤,在“提升域功能”对话框中,从下拉菜单中选择 Windows Server 2003 ,然后单击提升
重要须知: 这个更改是不可逆的并可能需要 15 分钟的时间。

图 9:提升域功能等级
查看大图。


2.
在“此更改将影响整个域”警告上,单击 确定。提升完域功能等级后,就不能再逆转了。
3.
在“成功提升了功能等级”消息上,单击 确定
如要设置委派功能
1.
单击开始管理工具,然后单击 活动目录用户和计算机
2.
必要时展开域(如:iishost.microsoft.com)和“计算机”文件夹
3.
活动的目录用户和计算机 的右边方框中,MMC 工具列出了您的域中的计算机,双击 Web 服务器的计算机名,选择 属性,然后单击 委派选项卡(图 10)。

图 10:计算机属性的“委派”选项卡上的默认设置
查看大图。


4.
默认禁用委派功能。如要启用协议转换和强制委派,选择仅对指定的服务信任计算机可执行委派功能
5.
另外,您可以随意对基于 Kerberos 或任何验证协议的工作指定委派功能。这样您就可以结合 Basic、NTLM、Digest、Kerberos 或任何其他 IIS 验证提供器使用通行验证。
6.
单击添加按钮。
7.
添加服务对话框中,单击 用户或计算机,然后搜索或输入将要从 IIS 接收用户凭证的文件服务器的名称(图 11)。

图 11:识别将接收委派凭证的文件服务器
查看大图。


8.
结束时单击确定
9.
计算机名属性对话框中,单击 添加按钮。将弹出添加服务对话框。
10.
添加服务对话框中,单击 用户或计算机,在选择用户或计算机 对话框中,搜索或输入将要从 IIS 接收用户凭证的文件服务器的名称(图 12)。

图 12:使用 Windows Server 2003 的“选择用户或计算机”对话框指定文件服务器
查看大图。


11.
结束时单击确定。如图 13 所示,“添加服务”对话框,现在列出了针对选定的计算机注册为结合 Kerberos 的服务主体名的服务。

图 13:Windows Server 2003 “添加服务”对话框列出了已注册的服务
查看大图。


12.
服务类型 列表,选择“HOST” (服务器服务)和“通用 Internet 文件系统”(CIFS)服务,然后单击“确定”。
重要须知: 仅添加您确定需要接收委派凭证的服务。请确认使用的是文件服务器而不是 Web 服务器上的服务名称。 注意: 如果您想使用强制委派访问远程 SQL 服务器,就必须添加相应的服务(针对 SQL 服务器)。常见例子是,您有一个可建立对 SQL 服务器的活动数据对象(ADO)连接的活动服务器页面(ASP)。SQL Server 服务主体名为:MSSQLSvc。

图 14:对 Active Directory 设置协议转换和强制委派的结果
查看大图。


13.
计算机名属性对话框上的委派选项卡中,确认是否已添加了新的服务,如图 14 所示。单击确定。这样就完成了对 Active Directory 设置从 IIS 服务器到文件服务器的协议转换和强制委派的步骤。



在文件服务器上设置许可必须谨慎实施文件服务器许可,以便提供对内容的正确访问。这一过程涉及将 IIS 身份验证协议同委派和通行验证相结合,或为 IIS 指定一个用于在验证远程资源时使用的用户帐户。当然,您的服务器应该总是使用 NTFS 许可,以便正确地实施安全性。
文件服务器共享文件夹共享区的默认共享许可为“每个人均可读取”。如果您正在使用 IIS 作为一台发布服务器(WebDAV、Microsoft FrontPage、FTP 等)并且文件服务器处于后端,您需要为共享区和 NTFS 设置充分的许可,以便可以写入资源。共享许可应该可以“更改”或“完全控制”,并需要“修改写入”许可,以便使有关应用程序正常运行。所需的特定设置取决于您实施发布的方式。
设置共享许可
1.
右击您想共享的文件夹。
2.
选择共享和安全
3.
选择共享选项卡(设置正确的共享名和注释)。
4.
单击许可
5.
删除“每个人”组(如果存在的话);这可能允许意外的访问。
6.
添加适当的用户或群组(通行验证的用户是一个很好的选择),可以访问共享文件夹。授权访问可以输入群组或用户。建议您使用群组来控制本地资源的访问权。
7.
给用户或群组最小的必需的权限来访问目录。读取是最小的允许权限。如果本地用于 Frontpage 发布,更改或完全控制权限可能是必需的。
设置 NTFS 权限重要须知:注意当编辑任何默认的 NTFS ACL 设置时;您需要确认管理员仍然可以控制文件目录。
1.
右击您想保护的文件夹或文件
2.
选择共享和安全
3.
选择安全选项卡。
4.
单击添加按钮。
5.
输入您想访问的域用户或组的名称,然后单击确定。默认的 NTFS 设置仅用于服务器上的本地帐户。域用户必须明确允许正确的访问。
6.
确认允许 复选框被设为允许最低限度的访问。(要让 IIS 检索内容,只需选定“读取”访问。)


对远程内容优化 IIS 缓冲当 IIS 传输内容时,将缓冲页面,以便响应请求。更快地进行传输。这对于远程文件服务器特别重要,因为网络子系统介于 IIS 与其内容之间,从而增加了等待时间。当进行缓冲时,一些机制必须就位,以便让 IIS 了解远程服务器上的内容比保存在 IIS 缓存中的版本更新。
IIS 6.0 支持通过两种方式来决定文件缓存是否需要使用远程文件服务器上的新内容进行更新:如 IIS 4.0 和 IIS 5.0 中所执行的文件变更通知,以及 IIS 6.0 所新增的最后一次修改时间。另外,缓冲方法必须针对静态文件和 ASP 进行单独设置。
最后一次修改时间默认情况下,IIS 6.0 只是简单地查询在文件服务器上的文件系统对缓冲文件的最后一次修改时间。如果最后一次修改时间在文件上已经改变,IIS 上的文件缓存就用新的内容进行更新。如果最后一次修改时间没有改变,在 IIS 上的文件缓冲版本就被发送出去。通过使用最后一次修改时间替代监测每个变更通知的虚拟目录(这会大量消耗文件系统的资源),当大量虚拟目录映射到 UNC 共享区时,可伸缩性将得到提升。检查一个文件的最后修改日期是一个比文件变更通知更可靠的机制,因为一些 NAS 设备不会完全执行变更通知。此外,当最后一次修改时间被抽样后,随着共享区和 NTFS 许可的生效,安全性将得到提升。使用该缓冲方法的一个重要考虑事项是,不通过 HTTP.sys 缓存缓冲 UNC 内容。然而,在 ASP 内的缓存和静态文件使用缓存的方式不受这种设置的影响。
在该情况中,最后一次修改时间缓冲方法表现最佳:
当站点或虚拟目录的数量很大时。
文件很庞大(超过 256 K 的文件将不会使用任何缓冲算法进行缓冲;如果您传输大型文件,缺少使用最后一次修改时间算法的 HTTP.sys 缓存,效果会比较差。在 Windows Server 2003 SP1 中,可以通过一个注册表键配置该限制,可能大于 256 K)。
缓存命中率低。
可靠性/可用性比性能更重要。
您的 NAS 设备不能可靠地支持变更通知。
在缓存采样期间,您关注授权共享许可。
在一台繁忙的服务器上,每当访问完一个文件就去检查最后一次修改时间是不切实际的。因此,在默认情况下,IIS 6.0 大多每隔 5 秒检查一次最后一次修改时间,此外,它假定文件没有改变。IIS 在 5 秒间隔内从缓存中传出旧文件。
对于某些站点,5 秒间隔太大,而对其他站点来说又太小。这个采样间隔可以通过下面的注册表键(非默认值)来配置:
静态页面设置注册属性,FileAttributeCheckThreshold,一个 DWORD 值,位于:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters。 另外,注意到包含文件处理程序(ssinc.dll)的服务器端利用用户模式静态文件缓存,因此您应用于用户模式静态文件缓存的配置也被应用于 .stm、.shtml 以及任何其它您将其映射到 ssinc.dll 的文件。
ASP 脚本设置注册属性,FileMonitoringTimeoutSeconds,一个 DWORD 值,位于:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ASP\Parameters
使用最后的修改缓存更新机制将使传输的内容更安全和更可靠。另外,它可以在一个广泛的应用结构上很好地进行扩展(您的 Web 服务器拥有大量指向成千个不同目录的应用程序)。然而,在静态内容方面存在明显的性能损失。
文件变更通知在很多情况下,基于 UNC 的内容的性能在默认的缓存设置下稍低(和使用基于变更通知的缓冲相比较)。如前面提到的,HTTP.sys 缓存没有用作使用最后修改缓存方式的 UNC 内容访问。因此,如果您传输庞大的文件,不会使用任何缓存算法进行缓冲,您将无法观察到性能差异。如果您观察到差异,那么可能使用了静态文件而不是 ASP 文件。使用 ASP,检查最后一次修改时间和监听变更通知之间的性能损失很小,因为无论哪种方法用作缓冲更新,等待时间的最大部分来自于重新编译和执行 ASP 页面。
变更通知事件的 IIS 监控器位于每个虚拟目录的根目录。大量虚拟目录能够导致巨大的开销,但如果您使用一个文件服务器可靠地报告变更通知 并且 您只有少量的站点和使用远程内容的虚拟目录,使用变更通知速度会更快。例如,如果您拥有附带几个应用程序的单一站点,同时您的所有内容都存储在一台 Windows Server 2003 文件服务器上,那么推荐您使用变更通知的缓存方式。
在下列情况中,基于变更通知的缓冲表现最佳:
站点或使用 UNC 内容的虚拟目录的数量较少。
文件小到足以执行缓冲(小于 256 K)。
要求都集中在几个文件中,即缓冲命中率较高。
核心模式缓存所提供的性能优点很重要。
您可以通过添加下列注册键(非默认值),启用基于通知的缓冲:
静态页面设置注册属性,DoDirMonitoringForUNC,一个 DWORD 值,位于:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters。 另外,注意到包含文件处理程序(ssinc.dll)的服务器端利用用户模式静态文件缓存,因此您应用于用户模式静态文件缓存的配置也被应用于 .stm、.shtml 以及任何其它您将其映射到 ssinc.dll 的文件。
ASP 脚本设置注册属性, EnableChangeNotificationForUNC,一个 DWORD 值,位于:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ASP\Parameters

posted @ 2009-05-09 14:59  冰封的心  阅读(486)  评论(0)    收藏  举报