2013-02-01 214 views
44

我有一个新的Win7工作站,我试图让ScrewTurn Wiki在机器上运行。我的STW安装使用文件系统选项来存储它的数据,因此我需要为安装网站的文件夹中的ASP.NET工作进程提供写入权限。如何给ASP.NET权限写入Windows 7中的文件夹?

然而,我似乎无法能够在Win7中想出工作进程的名称,以便将其添加到文件夹的权限中。在XP中它是ASPNET_WP,如果我没有记错,但这不是它在Win7中的名称。

有人可以告诉我吗?

编辑补充:

针对@Dragan_Radivojevic,这里是有问题的应用程序池的样子(命名ScrewTurnWiki):

IIS7 Application Pools

的身份是 “ApplicationPoolIdentity”

+0

[Web应用IIS7文件夹权限]的可能的复制(https://stackoverflow.com/questions/2532079/iis7-folder-permissions-for-web-application) – KyleMit

回答

108

从安全的角度来看,为所有IIS_USRS组提供写入权限是一个坏主意。你不需要这样做,你可以只给运行应用程序池的系统用户授予权限。

如果你正在使用II7(我猜你会这样做),请执行以下操作。

  1. 打开IIS7
  2. 选择网站,您需要修改权限
  3. 进入基本设置,看看你正在使用的应用程序池。
  4. 转到应用程序池,并找到#3用于运行该应用程序池(标识列)
  5. 导航到IIS你的存储文件夹
  6. 查找系统帐户的应用程序池,选择它,然后点击编辑权限(下操作右侧的子菜单)
  7. 打开安全选项卡,并添加所需的权限只对用户,你在#确定3

注1:如果你看到ApplicationPoolIdentity在#3你需要引用此系统用户喜欢此IIS AppPool {application_pool_name}。例如IIS AppPool \ DefaultAppPool

注意#2:添加此用户时,请确保在选择用户或组对话框中设置正确的位置。这需要设置为本地计算机,因为这是本地帐户。

+3

看起来不错,但相关身份不会被系统识别为用户,并且搜索(通过高级按钮)也找不到它。但是,我正在使用我的工作站,而不是服务器。我支持两个防火墙,我不认为IIS_IUSRS是暴露的。 – Cyberherbalist

+0

尝试搜索像我上面显示的用户 “IIS AppPool {application_pool_name}。例如IIS AppPool \ DefaultAppPool” –

+0

没有运气;我找不到这样的用户。如果这是一个64位Windows 7工作站,这有什么关系吗? – Cyberherbalist

13

我的直接解决方案(因为我找不到ASP.NET工作进程)给IIS_IUSRS写入(即修改)权限。这工作。我似乎回想起在WinXP中,我不得不专门给予ASP.NET工作进程写入权限来完成此操作。也许我的记忆有问题,但无论如何...

@DraganRadivojevic写道,他认为这从安全观点来看是危险的。我并不反对,但由于这是我的工作站,而不是网络服务器,所以它似乎相对安全。在任何情况下,他的回答都会更好,并且是我在追查失败路径后最终解决的问题,因为没有为AppPool用户指定正确的域。

28

我知道这是一个旧线程,但为了进一步扩展答案,默认情况下,IIS 7.5创建应用程序池标识帐户以运行该工作进程。添加文件权限时,您不能像普通用户帐户一样搜索这些帐户。要将它们添加到NTFS权限ACL中,您可以输入应用程序池标识的完整名称,它将起作用。

这只是应用程序池标识帐户处理方式的细微差异,因为它们被视为虚拟帐户。

此外,应用程序池标识的用户名是“IIS AppPool \ application pool name”,因此如果是应用程序池DefaultAppPool,用户帐户将是“IIS AppPool \ DefaultAppPool”。

如果打开计算机管理并查看本地组IIS_IUSRS的成员,可以看到这些。将帐户添加到NTFS权限ACL时,不需要在它们末尾附加SID。

希望帮助

相关问题