这个问题让我抓狂。
CS0016:无法写入输出文件“c:\Windows\Microsoft.NET\Framework<64>\vX.X.XXXX\Temporary ASP.NET Files\root\XXXXXX\XXXXXX\App_Web_XXXX.aspx.XXXXXXXX.XXXXXXXX.dll”——“目录名无效。”
我已尝试授予对 C:\windows\temp 上的网络服务和 v4.0.xxx 文件夹中的临时文件夹的完全访问权限。
服务器是Windows Server 2008 R2;SQL Server 2008 R2安装在同一台服务器上。
我认为这可能与在安装 .NET Framework 4.0 后安装 SQL Server 有关,但我运行了它aspnet_regiis.exe -u
然后-i
重新安装。我尝试从 Framework 文件夹和 Framework64 文件夹进行安装,但无济于事。
有其他人遇到过这个问题吗?如果有,您是如何解决的?
答案1
在应用程序池的高级设置中,确保“进程模型>加载用户配置文件”设置为“True”。
我遇到了完全相同的问题。我尝试更改权限、禁用防病毒软件、创建新的应用程序池并重新安装 .NET 4.0。我甚至创建了一个只有“Default.aspx”页面的新网站并尝试查看该网站。甚至该网站也出现了编译错误。最后,我注意到我的应用程序池(干净的测试网站和主网站)的“加载用户配置文件”设置具有非默认值“False”。我将其重新设置为 true,问题就解决了。
答案2
该路径中的某个文件夹名称无效:框架<64>。您不能在文件夹名称中使用尖括号,因为这些符号用于重定向输入/输出。该文件夹存在吗?可能不存在。因此,某些程序正在尝试创建并使用该文件夹,但失败了目录名无效。 尝试查看您正在运行的导致此错误的配置。如果失败,请尝试在注册表中搜索该字符串并将其替换为更合理的文件夹名称。最好的办法是首先确定哪个程序正在尝试使用此路径,将其完全卸载并重新安装,确保它不会尝试使用无效的文件夹名称。
答案3
- 在 下创建一个临时文件夹
%Systemroot%
,然后将其命名为Temp
。 - 向 .NET Framework 1.0 中的 aspnet 用户帐户或 .NET Framework 1.1 中的 NETWORK SERVICE 用户帐户授予对 Temp 文件夹的完全权限。
- 右键单击“我的电脑”,然后单击“属性”。
- 在高级选项卡上,单击环境变量。
- 选择系统变量下的 TEMP 变量,然后单击编辑。
- 在变量值框中键入
%SystemRoot%\TEMP
,然后单击确定。 - 重复步骤 5 和 6 以编辑 TMP 变量。单击“确定”两次。
- 单击“开始”,然后单击“运行”。
- 要重置 Internet 信息服务 (IIS),请
iisreset
在命令提示符中键入。