嗯,其中之一是根据您运行的 Windows 版本而有所不同。其次,您要询问 3 台不同的服务器。所以这可能是造成混乱的原因。
开发服务器
首先,最简单的一个:卡西尼。此服务器在与启动它的 Visual Studio 实例相同的帐户下运行,并具有相同的权限。通常,这只是您自己的 Windows 帐户。
IIS Express 使用与 IIS 完全相同的代码库,但它也将在您自己的 Windows 帐户下运行,即启动 Visual Studio(或 Web Matrix)的同一帐户。
IIS 6.0
现在适用于 IIS。在这里您可能会找到许多帐户。首先,您仍然可以在 Windows Server 2003 机器上找到的“旧”IIS 6.0 将使用以下帐户:
-
网络服务(IIS 6.0 及更高版本中应用程序池的默认和推荐工作进程标识)
-
本地服务(访问权限非常有限)
-
本地系统(用于在“IIS 5.0 隔离模式”下运行的工作进程,管理员成员并具有完全访问权限)
-
IIS_WPG(工作进程组的缩写,不是帐户,而是一个组,工作进程身份应该是该组的成员,以获得所需的最低权限)
-
IUSR_ComputerName(不用于工作进程,而是用于将匿名访问者映射到 Windows 帐户)
-
IWAM_{ComputerName}(对于 IIS 5.0 隔离模式,现在通常使用应用程序池进行隔离)
-
ASPNET(也适用于 IIS 5.0 隔离模式,它看起来像 ASP.NET 帐户,但在大多数情况下不是)李>
(此列表基于 TechNet 文章 IIS and Built-in Accounts (IIS 6.0)。)
IIS 7 及以上
对于 IIS 7,上面列出的其中一些不再相关,并且一些已被替换。由于这些帐户是 Windows 内置的,因此它们在任何地方都具有相同的 SSID,这可能会不时派上用场。
如果您将服务器从 Windows 2003 升级到 Windows 2008,或者如果您安装了 IIS 6.0 兼容性功能或更旧的 IIS 组件,您可能拥有旧的和新的一台机器上的帐户。
-
IUSR(*替换IUSR_{ComputerName},因此默认用于映射匿名用户*)
-
IIS_IUSRS(*替换 IIS_WPG 组,因此不是帐户而是组*)
(本文基于Understanding Built-In User and Group Accounts in IIS 7的文章。)
AppPool 标识(自 IIS 7.0 起)
这个列表现在几乎完成了,但我们仍然需要了解一种特殊类型的帐户:“动态”AppPool 身份。这些不是机器上的实际帐户,例如其他帐户,例如您在 Windows 中找不到他们列为用户。但如果您选择 ApplicationPoolIdentity 选项,它们是为应用程序池动态创建的虚拟帐户。
如果您需要授予此类帐户访问文件或文件夹的权限,您仍然可以通过键入以下内容来搜索该帐户:IIS AppPool{DefaultAppPool}(将 {DefaultAppPool} 替换为您创建的应用程序池)。
(您可以在 iis.net 上的 Application Pool Identities 中阅读更多相关信息。)
当您安装 .NET 4.0 时,IIS 会添加一个新的应用程序池,以便能够与现有的 .NET 2.0 Web 应用程序一起运行新的 .NET 4.0 Web 应用程序。安装程序将此应用程序池命名为 ASP.NET v4.0,并使用选项 ApplicationPoolIdentity。因此,无论您是否使用它,都会为这个新的应用程序池创建一个动态帐户。