常见问题 的常见问题>>

我们在 使用 ASP 访问一个数据库,但当我们向数据库中写入新内容时,总是出现“访问被拒绝”这一结果。在运行 NT 4.0 工作站和运行与之相当的 web 服务器时 ASP 页没有问题,但升级到装有 IIS 5.1 的 Windows XP Professional 后,它就无法使用了。问题好像出在某些目录的访问权限上,但我们怎样才能确定问题究竟在何处呢?

发布时间:2010-12-02 09:29:59

答案:

有一种极棒的免费实用工具,叫做 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 锁定工具

本FAQ适用范围

下一步您可以:
查看产品 >>