20

如何修复以下错误?

错误:cs0016 无法写入输出文件...c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\sitename\6c57f9d2\bb09b49d\App_global.asax.5odzsyz5.dll' 访问被拒绝

4

11 回答 11

32

在我自己在这个问题上花了几个小时之后,下面是在运行 IIS 7.5 的 Windows 7 上为我工作的解决方案:

与该站点关联的应用程序池标识不是 IIS_IUSRS 组的成员。要将应用程序池标识添加到组中,我使用了以下步骤:

  1. 从开始菜单中选择运行... 输入 lusrmgr.msc 并单击确定。
  2. 选择组。
  3. 双击 IIS_IUSRS 组。
  4. 单击添加... 按钮。
  5. 单击位置... 按钮。
  6. 选择您的计算机名称(它应该在列表的顶部),然后单击“确定”。
  7. 在“输入要选择的对象名称”下方的文本框中输入:iis apppool\<app pool identity> eg iis apppool\dev
  8. 单击检查名称按钮。如果出现 Name Not Found 对话框,则验证输入的应用程序池标识是否与与该站点关联的应用程序池标识匹配。如果没有出现对话框,请单击“确定”。

对要添加的每个应用程序池标识重复步骤 7 到 8。单击确定。

现在,应用程序池标识是 IIS_IUSRS 组的成员,该组应该已经可以访问 Temporary ASP.NET Files 目录。毕竟我仍然收到错误并且我发现(感谢进程监视器)这是因为应用程序池标识无法写入 Windows 临时目录。为了解决这个问题,我将 IIS_IUSRS 组添加到具有读/写权限的 Windows 临时目录中。

  1. 从开始菜单中选择运行... 输入 %windir% 并单击确定。
  2. 右键单击 Temp 目录并选择属性。
  3. 单击安全选项卡。
  4. 单击编辑... 按钮。
  5. 单击添加.. 按钮。
  6. 单击位置... 按钮。
  7. 选择您的计算机名称(它应该在列表的顶部),然后单击“确定”。
  8. 在“输入要选择的对象名称”下方的文本框中输入:iis_iusrs
  9. 单击检查名称按钮。如果出现 Name Not Found 对话框,则检查拼写错误。如果没有出现对话框,请单击“确定”。
  10. 选择添加的 IIS_IUSRS 组,然后在下面的每个人的权限框中选择:允许读取和允许写入
  11. 单击确定。将显示一个对话框,指出“您即将更改系统文件夹的权限设置,这可能会导致意外访问问题并降低安全性。您要继续吗?”
  12. 单击是
  13. 点击确定
于 2013-08-21T15:32:59.080 回答
17

我已解决此问题,将“网络服务”的完全控制设置为系统温度:

C:\Windows\temp

Web 服务器报告的错误消息有点误导。希望这可以帮助。

于 2014-04-10T13:34:53.067 回答
15

我在这个问题上挣扎了一段时间。在网上找到一些解决方案,涉及在错误消息中设置“Temporary ASP.NET Files”目录的权限。但是,即使向“所有人”开放它也不起作用。

然后最终以下步骤修复了它:

  1. 转到此站点的 IIS AppPool
  2. 右键单击应用程序池并转到高级设置
  3. 将身份从“ApplicationPoolIdentity”更改为“NetworkService”

可能还有一些其他必要的步骤,我在故障排除时做了这些,但这是关键步骤。由于某种原因,当“所有人”被授予访问权限时,应用程序池标识(例如 IIS_APPPOOL\SiteName)未被授予访问权限。我相信其他人可以解释为什么会这样......希望这可以帮助其他人解决这个令人沮丧的问题。

于 2012-06-15T16:37:28.873 回答
11

我有同样的问题。找到了一种简单的解决方法:在应用程序池的高级设置中将“加载用户配置文件”设置为 true。

于 2016-05-12T09:33:09.717 回答
3

我发现这篇文章中接受的答案在处理过程中是正确的。我尝试了“NetworkService”,但它不起作用。但是“LocalSystem”做到了!

于 2016-03-09T17:44:32.363 回答
3

对于Windows 7为用户设置Full Control文件夹权限C:\Windows\TempIIS_IUSRS

Network Service用户通常只适用于服务器

于 2017-10-27T11:45:08.450 回答
1

在此处输入图像描述 转到 C:\Windows\Temp 右键单击​​临时文件夹 > 转到安全 单击编辑添加新用户 [IIS_IUSRS] 并授予它完全权限。然后按确定,

于 2019-04-02T17:33:14.467 回答
1

只需要设置“临时”文件夹的权限。

  1. 转到“C:\Windows\Temp”
  2. 右键单击它,然后转到安全性。
  3. 将 [IIS_IUSRS] 用户的权限设置为完全控制
  4. 按确定

全部做完。

于 2022-01-04T11:40:07.907 回答
0

我曾尝试在 IIS 中授予有关身份的权限和更改,但我遇到了同样的错误。

我只是将以下文件保留在路径“C:\Windows\Microsoft.NET\Framework\v4.0.30319”下,问题就消失了。

  1. 授予对最近文件夹的完全控制权限。
  2. cvtres.exe(XML 配置文件)
  3. cvtres(应用程序)。
于 2020-11-06T06:56:04.130 回答
0

我在这里尝试了所有选项,但没有任何运气。对我有用的是简单地删除应用程序池并重新创建它。

不需要任何文件夹的额外权限。

于 2021-07-23T03:59:46.457 回答
-1

我拥有关于写作和阅读的所有权限,但我开始收到该错误。

我可以建议“重启机器”至少,它对我有用

于 2017-05-22T18:47:22.067 回答