解决方案:CS0016: 未能写入输出文件“WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/*/*.dll' 拒绝访问

本文介绍了解决.NET 编译器CS0016错误的方法,包括设置用户权限、配置环境变量及重启IIS服务等步骤。通过这些步骤可以有效解决因权限不足导致的编译问题。

今天遇到了这个问题,郁闷死了。唉。明明刚才程序运行的好好的。突然,出现了这个错误。

真不知道是怎么回事啊。还是互联网好,百度了一下,终于找到了解决方案。

本人使用方法2解决了我的问题。

 

错误信息提示如下:

编译器错误信息: CS0016:未能写入输出文件: 
'*:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/*/*.dll'--拒绝访问."

原因1:权限问题,访问权限问题。

解决方法1:为用户NETASP(NETWORK SERVICE [window 
2003])设置windows下Temp文件夹的所有权限

解决方法2:

1、如果C:/Windows目录下没有Temp文件夹,则创建一个;

2、右键Temp文件夹--属性--安全,添加一个用户"NETWORK SERVICE ",(如果是.NET Framework 1.0 则添加用户"aspnet user"), "赋予权限--完全控制;

3、右击"我的电脑"-"属性"-"高级"-"环境变量",选择系统变量下的"TEMP",点编辑,设置变量值为 %SystemRoot%/TEMP,确定,再对"TMP"进行同样的操作,点击确定;

4、重启IIS服务,问题解决。

原因2:服务被某些优化软件禁止。

解决方案:

1、ASP.NET State Service被停止了,重新启动ASP.NET State Service服务,并设为自动。

2、开始-运行-iisreset;。

3、OK
### ### 常见原因分析 运行 `cd C:\Windows\Microsoft.NET\Framework64\v2.0.50727` 命令失败可能由以下几个原因导致: 1. **路径不存在或拼写错误** 某些系统可能没有安装 .NET Framework 2.0 的 64 位版本,因此该目录不存在。此外,路径中的大小写或拼写错误也可能导致命令失败。 2. **权不足** 如果当前用户没有访问系统目录的权,命令行工具可能无法进入该目录。尤其是在使用标准用户权运行命令提示符时,可能会遇到访问被拒绝的问题。 3. **32 位与 64 位路径混淆** 在 64 位系统中,`Framework64` 和 `Framework` 是两个不同的目录,分别对应 64 位和 32 位的 .NET 安装路径。如果误用了 `Framework` 而非 `Framework64`,可能导致路径错误。 4. **系统文件损坏或 .NET Framework 未正确安装** 如果 .NET Framework 安装不完整或注册表信息异常,也可能导致路径无法访问。 ### ### 解决方案 #### 1. 确认路径是否存在 首先,检查目标路径是否真实存在。可以通过文件资源管理器访问: ``` C:\Windows\Microsoft.NET\Framework64\v2.0.50727 ``` 如果路径不存在,说明 .NET Framework 2.0 64 位版本未安装。可以尝试通过以下方式安装: - 控制面板 → 程序 → 启用或关闭 Windows 功能 → 勾选“.NET Framework 3.5(包含 2.0 和 3.0)”。 - 或者手动下载并安装 .NET Framework 2.0 SP2 安装包。 #### 2. 使用管理员权运行命令提示符 在标准用户权下,可能无法访问系统目录。应以管理员身份运行命令提示符: - 打开“开始菜单”,搜索 `cmd`,右键选择“以管理员身份运行”。 - 然后再次执行命令: ```cmd cd /d C:\Windows\Microsoft.NET\Framework64\v2.0.50727 ``` #### 3. 清理 Temporary ASP.NET Files 如果目标路径下的 `Temporary ASP.NET Files` 文件夹存在访问冲突,可尝试手动清理: - 打开资源管理器,进入: ``` C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files ``` - 删除该目录下的所有子文件夹和文件。 - 然后重新尝试进入目录执行操作。 #### 4. 设置目录访问权 如果当前用户没有访问权,可以手动设置目录权: - 右键点击 `C:\Windows\Microsoft.NET\Framework64\v2.0.50727` 目录 → “属性” → “安全” → “编辑”。 - 添加当前用户或 `IIS APPPOOL\{YourAppPoolName}` 账户,并赋予“读取和执行”权。 - 确保 `NETWORK SERVICE` 或 `IIS APPPOOL` 账户具有写入,以避免 ASP.NET 编译时出现异常[^2]。 #### 5. 重新注册 ASP.NET 如果路径存在但功能异常,可以尝试重新注册 ASP.NET: - 以管理员身份打开命令提示符,执行以下命令: ```cmd cd /d C:\Windows\Microsoft.NET\Framework64\v2.0.50727 aspnet_regiis.exe -i -enable ``` - 此操作将重新安装并启用 ASP.NET 2.0,修复可能的注册问题[^4]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值