"错误:cs0016无法写入输出文件...访问被拒绝"

时间:2012-06-11 05:09:53

标签: iis

如何解决以下错误?

  

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

10 个答案:

答案 0 :(得分:24)

在这个问题上花了好几个小时后,我自己在运行IIS 7.5的Windows 7上运行的解决方案:

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

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

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

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

答案 1 :(得分:15)

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

<强> C:\的Windows \温度

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

答案 2 :(得分:13)

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

然后最终修改了以下步骤:

  1. 转到此网站的IIS AppPool
  2. 右键单击应用程序池并转到“高级设置”
  3. 将身份从“ApplicationPoolIdentity”更改为“NetworkService”
  4. 我可能还有一些其他必要的步骤,我在进行故障排除时会这样做,但这是关键步骤。出于某种原因,当“Everyone”为时,App Pool Identity(例如IIS_APPPOOL \ SiteName)未被授予访问权限。我相信其他人可以解释为什么会出现这种情况......希望这有助于其他人解决这个令人沮丧的问题。

答案 3 :(得分:8)

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

答案 4 :(得分:3)

对于 Windows 7 为用户Full Control设置文件夹C:\Windows\Temp的{​​{1}}权限

IIS_IUSRS用户通常只适用于服务器

答案 5 :(得分:2)

我发现这篇文章中接受的答案是正确的。我尝试过“NetworkService”但它没有用。但是“LocalSystem”确实做到了!

答案 6 :(得分:0)

我拥有写作和阅读的所有权限,但我开始遇到这个错误。

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

答案 7 :(得分:0)

enter image description here 走 C:\ Windows \ Temp 右键单击“临时文件夹”>转到“安全性”,然后单击“编辑”。 添加新用户[IIS_IUSRS]并授予其完全权限。然后按确定,

答案 8 :(得分:0)

我曾经尝试过提供有关身份的权限并在IIS中进行更改,但是我遇到了同样的错误。

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

  1. 授予对最近文件夹的完全控制权限。
  2. cvtres.exe(XML配置文件)
  3. cvtres(应用程序)。

答案 9 :(得分:0)

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

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