手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>Web服务器>列表

IIS常见问题及解答连同故障分析

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

答:再重述一次,针对在 web 服务器上运行这一目的而编写的程式有特定的需要。例如,您不能通过 URL 来调用 Notepad.exe 的一个实例并期望在客户端系统上看到记事本窗口。为让一个可执行文档(不是 CGI)和来自 IIS 的请求交互,需要用 ISAPI 来编写他。ISAPI 的意思是“Internet 服务器应用程式编程接口”。ISAPI 可执行文档分两类--扩展和筛选器。
ISAPI 扩展可从像 http://localhost/myisapi.dll 这样的 URL 直接调用。假定您将 IIS 配置为允许执行目录上的“脚本和可执行文档”而且用户具备 NTFS“执行”权限,则该 dll 将能够运行。IIS 允许您指定让应用程式在进程中运行(作为 inetinfo 的一部分来运行)还是在进程外运行(在 IIS 4 上作为 MTX 的一部分运行,或在 IIS 5.x 上作为 dllhost 的一部分运行)。当一个应用程式在进程外运行时,inetinfo 就会和您所说的那类问题隔离开,不受其影响。假如应用程式失败,则 web 服务器也将失败。
而 ISAPI 筛选器则全然不同。ISAPI 筛选器能够修改传入和传出 IIS 的数据流。所以,他们有强大的能力,可用来实现自定义的日志记录、身份验证,也可用来修改数据流。IIS 5 的 ISAPI 筛选器中实现的功能包括数据压缩、简要身份验证和 URLScan。
因为筛选器在 IIS 中扮演着这样一种重要角色,所以在设计上,他们总作为 inetinfo 的一部分在进程中运行。因此,如您所知,正确构造 ISAPI 筛选器对于服务器的正常运行来说是十分重要的。我的建议是,您能够让 Microsoft 产品支持服务和您一道找出问题所在,因为这类异常的诊查工作可能会相当难。
就这一问题,有几种新技术可能会使您的工作略轻松一点。一是期望使 用 IIS 6。由于他采用新的体系结构,任何 ISAPI 筛选器都在进程外运行。这样可让您实现将 web 服务器和反复无常的 ISAPI 筛选器隔离起来的目标,但并没有真正解决问题。为最终解决问题,请评估一下 .NET 语言在实现 ISAPI 筛选器方面的能力。我估计您会发现,用 .NET 实现同样的功能,将比采用 C 语言的标准 ISAPI 筛选器设计要简单得多。
使用 WebDAV 从 ASP 编辑文档的代码示例
问:在哪里能找到使用 WebDAV 从 asp 编辑文档的代码示例?
答: 在使用 IIS 上的脚本中的 WebDAV 时,您最有可能使用的是 ASP.Net 的 WebClient 类。假如您在使用 Windows XP 或 Windows .NET 服务器,则操作系统中已包含 WebDAV 功能。这使您能够像使用 UNC 路径那样,用 HTTP 来引用一个 web 服务器上的文档。例如,您能够用 NET USE * http://servername/directory 命令来映射一个驱动器,然后用该驱动器符号访问此位置。或,您也能够创建一个用作 WebDAV 客户端的 COM 对象。您能够用此对象向 IIS 5.x 或 IIS 6.0 发出 WebDAV 操作命令。
另外,假如您在 MSDN 上搜索 WebDAV,您会找到很多关于如何用 XML 为 Exchange 和其他 Microsoft 服务器创建 WebDAV 查询的示例。在 Microsoft Exchange 2000 Server SDK 中有一个 WebDAV 示例应用程式。
尝试用 ASP 访问数据库时“访问被拒绝”
问:我们在 使用 ASP 访问一个数据库,但当我们向数据库中写入新内容时,总是出现“访问被拒绝”这一结果。在运行 NT 4.0 工作站和运行和之相当的 web 服务器时 ASP 页没有问题,但升级到装有 IIS 5.1 的 Windows XP Professional 后,他就无法使用了。问题似乎出在某些目录的访问权限上,但我们怎样才能确定问题究竟在何处呢?
答:有一种极棒的免费实用工具,叫做 Filemon,能够到 http://www.sysinternals.com 上找到他。在我讲授 IIS 时,我让学生们将此工具保存在软盘上,不管到哪里都随身带着他。我并不完全是在开玩笑。您能够用 Filemon 快速诊断出多数权限问题,因为他能够实时显示服务器上被访问的任何文档、调用进程的名称连同访问结果。这样,对于任何“访问被拒绝”消息,不管问题在嵌套 的 include 中埋多深,也不管临时索引有多模糊--都可轻松找出。
假如某一应用程式在一个操作系统上能够使用,而在操作系统升级后他 无法工作了,这会让人很沮丧。但是,这类问题往往都很有启发性。IIS 4 和 IIS 5 之间存在的一种差异和 COM 和 COM 之间的差异有关。在 IIS 5 中,当一个 COM 对象代表用户访问文档时,其默认行为是使用用户的安全上下文进行访问。在 IIS 4 中则不是这样。所以,当您将包含 COM 的应用程式从 IIS 4 迁移到 IIS 5 时,您可能需要提供针对这些文档的用户权限,尽管在 IIS 4 中不需要提供这些权限。有时这可能不大方便,比如您所碰到的情况;但是,在应用程式的安全设计方面,这确实是一项改进。尽管您可能没有使用自定义 COM 对象访问数据库,但 COM 在本机 IIS 组件中的应用很广泛。
体现这一需要的场合,是在需要授予对 Access 使用的临时文档夹的权限连同需要向创建数据库请求的用户授予权限时。有关更多信息,请参阅 Microsoft 知识库文章 Q210457 和 Q271071。
如何在不恢复原配置的情况下运行 IIS 锁定工具
问:我们在我们的服务器上运行了“IIS 锁定”工具,他在对系统执行一些基本的安全配置修改时看起来很成功。但在运行此工具后,我们又给服务器添加了一些功能和内容,然后想再次运行此工具。然而,当我们启动 IIS 锁定向导时,他显示:
假如您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
在这种情况下,我们不想还原到以前的配置,因为这样做会让我们丢掉存储在元数据库中的、对 IIS 配置所做的更改。我们怎样才能再次运行 IIS 锁定工具而又不用先执行还原呢?
答:在我看来,IIS 锁定工具是 Microsoft 真正的压轴戏。如您所说,此工具让您能够轻松而又显著地增加您服务器的安全性。运行此工具后,他将其操作历史存储在位于以下位置的一个文档中:system32inetsrv。您将能够在以下文档中找到此信息:
- Oblt-rep.log
- Oblt-once.md0
- Oblt-mb.md0

假如您运行了上面显示的“撤销”任务,则还会有一个 Oblt-undone.log 文档。
假如您删除这些文档,则将启动向导,似乎没有运行过 IIS 锁定工具相同。据我所知,重复执行此过程没有什么风险。但在这样做之前,一定要为 metabase.bin 制作一个副本。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!