ASP.NET用户没有对临时ASP.NET文件的写入权限。

8

当我在我的XP Professional电脑上运行Visual Studio 2008 ASP.NET项目(不带调试)时,会出现以下错误:

System.Web.HttpException: The current identity (machinename\ASPNET) does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files'.

我该如何解决这个问题?
8个回答

15

你尝试过在框架文件夹中使用 aspnet_regiis.exe 吗?


新手错误...那天忘了重新运行,就进行了Windows修复。 - y0mbo
我尝试过这样做,但只是暂时的。有没有永久解决方案? - Bob.
我仍然有这个问题,是因为我的硬盘完全加密了吗? - Hari Gillala
嗨,DevelopingChris- 你有没有好的文章链接可以了解这个是如何工作的以及解决问题的步骤? - Christopher Painter
@ChristopherPainter 实质上,这个脚本是一个旧的程序,以现代 PowerShell 的方式操作 iis,添加 isapi 模块并确保文件夹设置为 asp.net 成为 iis 的一部分。4guys from rolla 曾经在上面发布过一些东西。但这就是为什么它很危险,因为它对文件系统上的外部影响或其他需要注册的 .net 版本毫不知情。 - DevelopingChris
显示剩余2条评论

12

我曾遇到同样的问题,这是我所做的:

  1. 前往 c:\windows\microsoft.net\framework\v2.0.50727
  2. 右键单击 "Temporary ASP.NET files"
  3. 选择 "安全" 选项卡
  4. 从组中选择 "Users(xxxxxx\Users)"
  5. 勾选 "写入" 权限
  6. 点击 "确定"

3
要么授予该用户对该目录的访问级别,要么更改应用程序池运行的身份-在IIS管理器中,确定用于运行您的应用程序的应用程序池,然后在IIS管理器的应用程序池部分查看该池的属性-您想要的选项卡是“Identity”(我想这是我记得的)。
您可以将其设置为另一个用户帐户-例如,Crystal Reports .Net需要访问C:\ Temp的更新和删除权限-因此我们有一个具有管理员访问权限的“webmaster”用户,并使用该标识来运行这些应用程序。

0

你可以右击 Visual Studio 并选择以管理员身份运行。


0

我在尝试构建Web部署项目(*.wdploy)时遇到了这个问题。只需在框架路径上创建文件夹即可解决错误。


0

您可以尝试使用位于c:\windows\microsoft.net\framework\v2.0.50727中的自动化regiis实用程序aspnet_regiis.ext来修复它。

否则,只需手动添加所需的文件权限,如错误中所述。


0

仅仅因为最近的答案是5年前的,我们在环境中所做的是删除应用程序、应用程序池并重新创建它们。

显然,我们在底层进行了一些安全性方面的改变。

这样做重新创建了一个具有所有正确权限的临时ASP Net文件夹。我不知道为什么我刚从源代码控制中获取的一个站点,重建等等都失败了。而最近设置的另外两个站点,下载了最新版本,重建等等,它们就可以正常工作。

但是,将应用程序、应用程序池删除并只使用与其他两个已知工作站点相同的IIS权限重新创建它们,就可以重新创建所有需要的对象,现在一切都正常工作。


-1
请确保ASPNET用户具有写入该文件夹的权限。右键单击文件夹,选择属性,然后选择安全选项卡。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接