整理的IIS相关问题以及IIS相关文档
win2003 IIS6.0错误解决办法 动态或静态内容错误 禁止应用程序对资源进行访问 在全新安装之后,IIS 6.0 以工作进程隔离模式运行。默认情况下,以此模式运行的应用程序使用网络服务标识。“网络服务”是具有极少用户权限的帐户,因此可通过限制对 Web 服务器上资源的访问来提供更高的安全性。如果在服务器处于工作进程隔离模式时将应用程序迁移到 IIS 6.0,并且应用程序先前作为本地系统在进程内运行(在 Inetinfo.exe 中),则应用程序可能由于网络服务标识设定的限制无法访问资源。本地系统帐户拥有操作系统上几乎所有资源的访问权限,因此,可能会产生严重的安全隐患。尽可能不要使用本地系统帐户。如果必须使用本地系统帐户来运行某个应用程序,则在其自己的虚拟目录中的新应用程序池中运行该应用程序,以便通过隔离该应用程序来减少攻击面。或者,如果应用程序需要使用可信计算库 (TCB) 的权限,则以可配置的身份运行该应用程序,并给该可配置的身份指派 TCB 权限。但是,这种方法仍存在安全隐患,因为可通过 TCB 权限执行很多操作。
详细信息,请参阅配置工作进程标识和 IIS 和内置帐户。
动态内容请求返回 404 错误 为了更好地预防恶意用户和攻击者的攻击,IIS 是在高度安全和锁定模式下安装的。在默认情况下,IIS 仅处理静态内容,这意味着除非启用 ASP、 ASP.NET、在服务器端的包含文件、WebDAV 发布、FrontPage® Server Extensions 和通用网关接口等功能,否则无法使用这些功能。如果在安装 IIS 后没有启用此功能,则在拒绝此类服务时,IIS 默认返回常规 404 自定义错误页以防止泄漏配置信息。默认情况下,IIS 还将 404 错误及子状态代码 2 (404.2) 写入到 W3C 扩展日志文件中。
要点 您必须是本地计算机上 Administrators 组的成员或者您必须被委派相应的权限才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%system32inetsrv iis.msc"。
启用或禁用 Web 服务扩展
在 IIS 管理器中,展开本地计算机,然后单击“Web 服务扩展”。 在详细信息窗格中,单击要启用或禁用的 Web 服务扩展。 要启用已禁用的 Web 服务扩展,请单击“允许”。 要禁用已启用的 Web 服务扩展,请单击“禁止”。 单击“确定”。 要以编程方式启用或禁用 Web 服务扩展,请参阅 WebSvcExtRestrictionList。
静态文件请求返回 404 错误 对于静态内容请求,此版本的 IIS 仅处理具有已知文件扩展名的文件请求,此功能称为“已知扩展名”。如果所请求资源的文件扩展名没有映射到 MimeMap 属性中的已知扩展名,则 IIS 就会拒绝该请求,并默认在 W3C 扩展日志文件中记录 404 错误和子状态代码 3 (404.3)。要防止泄漏配置信息,可以将 IIS 配置为在拒绝此类服务时默认返回常规 404 自定义错误页。您可以使用 IIS 管理器添加或编辑多用途 Internet 邮件交换 (MIME) 映射。要关闭“已知扩展名”功能并允许 IIS 处理具有任何扩展名的文件,可以将 *, application/octet-stream 值添加到 MIME 映射列表中。如果更新全局 MIME 映射,则在工作进程回收或重新启动万维网发布服务(WWW 服务)后,更改才会生效。如果更新单个网站 MIME 映射,则更改会立即生效。
有关添加或编辑 MIME 映射的详细信息,请参阅使用 MIME 类型。
工作进程回收丢失应用程序会话状态 默认情况下,工作进程在 120 分钟后回收。如果在回收工作进程时 ASP 应用程序并不存储会话状态,则该 ASP 应用程序中的会话状态可能会丢失。要解决此问题,可以将会话状态存储在数据库中,或者禁用工作进程回收。
禁用工作进程回收
在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。 在“回收”选项卡上,清除“回收工作进程(分钟)”复选框。 单击“确定”。 在服务器端的包含文件指令 (#include) 返回 404 错误(对于 .stm 文件)或 0131 错误(对于 .asp 文件) 如果 ASP 页使用 #include 在服务器端的包含文件指令和 ".." 记号来引用某个父目录,则除非重新配置了 AspEnableParentPaths 配置数据库属性,否则,该指令将返回一条错误。默认情况下,将该属性设置为 false。如果将该属性设置为 true,则可能会产生潜在的安全隐患,因为包含文件路径可以访问应用程序根目录外的关键或机密文件。
通过 IIS 管理器启用父路径
在 IIS 管理器中,展开本地计算机,右键单击要配置的应用程序的开始位置目录,然后单击“属性”。 单击“目录”选项卡,然后单击“配置”。 单击“选项”选项卡。 在“应用程序配置”部分,选择“启用父路径”复选框。 单击“确定”。 ASP 在事件日志中给 Global.asa 生成“权限被拒绝”错误 由于早期版本的 ASP 在事件中没有用户上下文,因此只能在宿主进程的安全上下文(或用户标识)中执行事件。这将会导致一些问题,例如在将文件写入 Session_OnEnd 事件中时发生拒绝访问错误。在当前版本中,ASP 默认匿名运行 global.asa 事件、 Application_OnEnd 和 Session_OnEnd(默认值为 true)。
要以编程方式更改此设置,请参阅 AspRunOnEndAnonymously。
CGI 进程不启动 如果 CGI 进程没有运行,则确保已启用了 CGI Web 服务扩展。请参阅本主题中的动态内容请求返回 404 错误。另外,除非给运行 CGI 进程使用的帐户指派了某些用户权限,否则,CGI 不会启用。您可以将该帐户添加为 IIS_WPG 组的成员,并为它分配以下两种用户权限:
调整进程的内存配额 替换进程级令牌 为本地计算机上的帐户分配用户权限
从“开始”菜单中,指向“管理工具”,然后单击“本地安全策略”。 展开“安全设置”,双击“本地策略”,然后双击“用户权限分配”。 在详细信息窗格中,双击要更改的策略。 单击“添加用户或组”。 在“输入对象名称来选择”框中,输入用户或组的名称。 单击“确定”。 将 ASP.NET 页作为静态文件返回 如果安装了 IIS 6.0 而没有安装 ASP.NET,则将 ASP.NET 文件作为静态文件返回。如果重新安装了 IIS 6.0 而没有重新注册 ASP.NET,则也可能会出现该错误。要了解如何纠正此问题,请参阅 ASP.NET IIS 注册工具和使用 i 选项。 Windows NT Server 的协作数据对象失败 Microsoft& reg; Windows NT® Server 的协作数据对象 (CDONTS) 已从 Microsoft Windows® Server 2003 家族中删除。如果 Web 应用程序使用 CDONTS,则可以将它们转换为 Microsoft 协作数据对象 (CDO)。CDONTS 中的大多数方法在 CDO 中都有相匹配的方法,但是名称可能不同。
有关平台软件开发工具包 (PSDK) 中 CDO 的参考资料,请参阅 MSDN Online 上的 Overview of CDO。 |