如何给ASP.NET权限写入Windows 7中的文件夹?

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

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

有人可以告诉我吗?

编辑添加:

作为对@Dragan_Radivojevic的回应,以下是有问题的应用程序池(名为ScrewTurnWiki):

IIS7应用程序池

身份是“ApplicationPoolIdentity”

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

如果你正在使用II7(我想你是这么做的),请执行以下操作。

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

注意#1:如果您在#3中看到ApplicationPoolIdentity,则需要引用此系统用户,例如IIS AppPool {application_pool_name}。 例如IIS AppPool \ DefaultAppPool

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

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

应用程序池标识帐户的处理方式稍有不同,因为它们被视为虚拟帐户。

此外,应用程序池标识的用户名是“IIS AppPool \应用程序池名称”,所以如果是应用程序池DefaultAppPool,用户帐户将是“IIS AppPool \ DefaultAppPool”。

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

希望有所帮助

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

@DraganRadivojevic写道,他认为这从安全的angular度来看是危险的。 我并不反对,但由于这是我的工作站,而不是networking服务器,所以似乎相对安全。 在任何情况下,他的答案都是更好的,并且是由于没有为AppPool用户指定正确的域名而追查失败path之后我最终确定的。