我在默认网站下创建了一个名为 test (C:\test) 的虚拟目录,并添加了两个简单的测试文件(一个 html 和一个 aspx)。我想我必须将 IUSR 和 NetworkService(用于应用程序池)添加到 C:\test 并授予用户适当的权限,以便 IIS7 提供内容。
似乎根本不是这种情况,因为我可以查看虚拟目录中的任何文件(即使我将其转换为应用程序),而无需更改或添加 C:\test 文件夹上的任何安全设置。
我刚刚在 Windows 2008 上使用 ASP.NET 安装了 IIS7,除了添加虚拟目录之外没有更改任何设置。我错过了什么吗?甚至我关于 IIS7 的书也指出应添加用户帐户,并应添加适当的权限。
我添加了以下内容来回答评论:
我正在使用公共 IP http://xxx.xxx.xxx.xxx/test/one.html引用该文件,并且 IP 或 localhost 在我的受信任站点中。我根本没有在服务器上登录,因为我正在从我的家用计算机访问内容并且内容在我的生产服务器上。以下用户/组有权访问服务器上的 c:\test(创建者所有者、系统、管理员、用户),并且应用程序池在默认 NetworkService 帐户下运行。
我基本装的是win2008,用asp.net加了IIS角色。然后我打开IIS7,添加了一个虚拟目录并将两个文件复制到目录中进行测试。它很好用,但我想了解它为什么有效。IIS7如何在没有设置任何权限的情况下访问C:\ test文件夹中的文件。
首先,虚拟目录上没有驱动器号 (C:)。可能有一个支持您的虚拟目录的路径,但这不是虚拟目录。这篇文章是一个很好的概述。
您可能正在使用经过身份验证的访问,在这种情况下,您的 Windows ID 将被传递到 IIS,然后授予您访问相关文件的权限。
我没有 WS2008 来试试这个,所以我不能确定。
检查您的管理员和用户组并查看这些组中的内容,不知何故,IUSR 帐户有权查看该文件夹。