2009-04-27 90 views
8

我运行Windows 2003的IIS 6.0,开始出现此错误:IIS 6.0和ASP.NET - 无法写入到输出文件...目录名称是无效

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

有什么建议?


其他说明/响应:

  • 索引服务被禁用。
+0

如何获得该文件名? – 2009-04-27 16:52:40

+0

不知道我关注 - 如果这就是你的意思,我将从错误页面复制出来。 – 2009-04-27 17:12:24

+0

这个超级用户的问题解决了我的问题:http://superuser.com/a/638462/98557 – 2015-01-27 00:14:36

回答

2

使用SysInternals FileMon(或ProcMon,如果你喜欢)看到它真正bit real的真实文件。如果你有一个繁忙的服务器,你可以将它限制为只监视IIS,尽管我会从所有进程开始,并捕获几秒钟的输出。

运行之前,请确保IIS已经使用IISRESET /重新启动,这样不会从之前缓存错误被重置。

瑞安

1

OK,当你修理安装你的意思ASPNET_REGIIS -u/ASPNET_REGIIS -i?这将修复磁盘权限。

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

0

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

2

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

但是这工作起来很神奇:打开IIS管理器→从右侧菜单中选择“查看应用程序池”→选择“高级设置”→在“身份”属性中设置你的用户名和密码重新启动IIS

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

0

下面是最终的解决方案:)


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

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

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. 单击开始,然后单击运行。

要重置Internet信息服务(IIS),请在命令提示符处键入iisreset。

0

从windows server 2003 x64,IIS6,net 4。0,ASP应用程序,我提交了错误:\ TEMP是重要的,但我会更新这个答案有:

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. '

当我创建的DIR

d:\temp

不知道为什么d它被解决只要我知道的原因。

权限的DIR是:

admin full

creator owner special

system full

users read&execute/list/read

没有特定的IIS用户权限的定义。

工作迁移到IIS7主机,但认为这个答案可能对某人有帮助。