IIS 6.0和ASP.NET - 无法写入输出文件...目录名称无效

时间:2009-04-27 16:41:34

标签: asp.net iis asp.net-2.0 temporary-asp.net-files

我在Windows 2003上运行IIS 6.0并开始收到此错误:

Compiler Error Message: CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\7382c13f\ea9b3ff7\App_global.asax.zodyof_q.dll' -- 'The directory name is invalid. '

我已经检查了所有权限,并且所有权限都是必需的 - 此外,错误消息未提及权限。我已经尝试了以下内容:

  • 按照此[过时]知识库文章的说明进行操作:http://support.microsoft.com/kb/825791/en-us
  • 修复.NET Framework v3.5安装,然后重新启动
  • 删除c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root的内容,然后运行iisreset
  • 重置c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root上的权限,然后运行iisreset
  • 重置c:\WINDOWS\TEMP上的权限,然后运行iisreset

有什么建议吗?


其他说明/回复:

  • 已停用索引服务。

10 个答案:

答案 0 :(得分:4)

如果您安装了ANTS探查器并且在分析时崩溃,我找到了一个适用的答案。这个KB Article描述了其中一个解决方案:

http://www.red-gate.com/supportcenter/Content.aspx?p=ANTS%20Profiler&c=knowledgebase \ ANTS_Profiler \ KB200903000362.htm

答案 1 :(得分:3)

  1. %SystemRoot%下创建一个临时文件夹,然后将其命名为Temp
  2. 将Temp文件夹的完全权限授予.NET Framework 1.0中的aspnet用户帐户或.NET Framework 1.1中的NETWORK SERVICE用户帐户。
  3. 右键单击“我的电脑”,然后单击“属性”。
  4. 在“高级”选项卡上,单击“环境变量”。
  5. 在“系统变量”下选择TEMP变量,然后单击“编辑”。
  6. 在“变量值”框中键入%SystemRoot%\TEMP,然后单击“确定”。
  7. 重复步骤5和6以编辑TMP变量。单击“确定”两次。
  8. 单击“开始”,然后单击“运行”。
  9. 要重置Internet信息服务(IIS),请在命令提示符下键入iisreset。

答案 2 :(得分:2)

使用SysInternals FileMon(如果您愿意,可以使用ProcMon)查看它正在讨厌的真实文件。如果你有一台忙碌的服务器,你可以将它限制为只监控IIS,虽然我从所有进程开始,只捕获几秒钟的输出。

在运行之前,请确保已使用iisreset / restart重置IIS,以便之前不会缓存错误。

赖安

答案 3 :(得分:2)

我在运行IIS 7.0 / Vista Ultimate / .NET 2.0 Web App时遇到了同样的错误。我尝试在NETWORK SERVICE用户的临时文件夹上设置“完全控制”权限(右键单击文件夹c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727,属性,安全性选项卡)并关闭防病毒和UAC,但它没有帮助。

但这有点神奇:打开IIS管理器 - >从右侧菜单中选择“查看应用程序池” - >选择“高级设置” - >在“身份”属性中设置您的用户名(和密码) - >重启IIS

如果这不起作用,请另外检查您是c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727文件夹的所有者(右键单击,属性,安全选项卡,高级,所有者选项卡)

答案 4 :(得分:2)

对于仍有问题的每个人! 我的解决方案如下 http://support.microsoft.com/kb/825791

答案 5 :(得分:1)

好的,当您修复安装时,您的意思是ASPNET_REGIIS -u / ASPNET_REGIIS -i?这将修复磁盘权限。

它可能是你的病毒学​​家;如果可以的话,排除你的.net临时文件夹/ inetpub。

答案 6 :(得分:0)

必须尝试disabling windows Indexing Service作为临时asp.net文件夹

答案 7 :(得分:0)

我收到了同样的错误。反病毒/安全软件(McAffee Viruscan Enterprise)阻止visual studio工具csc.exe动态编译代码并在上面的目录文件夹中创建实体数据模型dll,该目录文件夹位于windows目录文件夹下。 McAffee中有一个名为访问保护的部分,它有一个名为Maximum Protection的规则,禁止在windows目录文件夹中创建可执行文件。只需临时禁用规则或访问保护即可成功编译网站。

答案 8 :(得分:0)

这是最终解决方案:)


  1. 首先将ASPNET帐户,NETWORK SERVICE帐户的所有权限授予“ASP.NET临时文件”文件夹,无论其使用的框架如何。
    像C:\ windows \ microsoft.net \ framework \ v2.xxx \ ASP.NET临时文件。

  2. 在TEMP和TEMP的环境变量下检查为您的机器配置的临时文件夹。 对于该文件夹,还授予ASPNET帐户,NETWORK SERVICE accout的所有权限。重置IIS 它应该工作正常。

答案 9 :(得分:0)

从Windows Server 2003 x64,IIS6,net 4.0,asp应用程序中,我遇到了错误:

  

编译器错误消息:CS0016:无法写入输出文件'c:\ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ root \ 7382c13f \ ea9b3ff7 \ App_global.asax.zodyof_q.dll ' - '目录名无效。 “

我在创建DIR时解决了

  

d:\ temp中

不知道为什么D:\ temp很重要但我会尽快更新这个答案。

DIR的权限是:

  

admin full

     

创作者所有者特别

     

系统已满

     

用户阅读&执行/列表/阅读

未定义任何IIS特定用户权限。

努力迁移到IIS7主机,但认为这个答案对某人有帮助。