网站无法打开,提示编译器错误信息:cs0016:未能写入写出文件 的解决办法
一.错误信息提示如下:
编译器错误信息: CS0016:未能写入输出文件: '*:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\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"进行同样的操作,点击确定;
原因2:服务被某些优化软件禁止。
解决方案:
1、ASP.NET State Service被停止了,重新启动ASP.NET State Service服务,并设为自动。
2、开始-运行-iisreset;。
3、OK
参考
http://support.microsoft.com/default.aspx?scid=kb;en-us;329065
二、 另外还有一个 Access denied 的错误说是不能访问 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files 下的某个目录。产生这些错误的原因很多,主要的可能包括:Bin 目录或者 Web.config 被更改以及访问文件系统的权限不够。
如果 Bin 目录或者 Web.config 被更改,MSDN 网站上有文章说是因为 Microsoft Index Services(Indexing Service) 服务在运行。
详细内容可以访问: PRB: Access Denied Error When You Make Code Modifications with Index Services Running 。
但是另外还需要注意一些别的问题,
- 检查 Bin 目录的文件系统访问权限。一般只要确保 Users 容器拥有“读取和运行”、“列出文件夹目录”和“读取”的权限就可以了。
- 如果提示说不能访问 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\... ,可以将 Temporary ASP.NET Files 目录的访问权限列表中添加 Everyone,并设置为拥有所有的权限。然后在访问一次此 Web 应用程序后,将 Temporary ASP.NET Files 目录的访问权限列表中将 Everyone 删除就可以了。
综上所述的方法,主要包括:
- 禁用或设置 Indexing Service 服务;
- 检查 Bin 目录的访问权限;
- 设置 Temporary ASP.NET Files 目录的访问权限。