IIS发布网站:CS0016: 未能写入输出文件的解决方法
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727 \Temporary ASP.NET Files\root\9b70b3a1\3eb1115f\App_Code.aez6e3ev.dll”-- “拒绝访问。 ”
源错误:
[没有相关的源行]
源文件: 行: 0
产生原因:
应用程序运行时产生的临时文件需要存放到c:"windows"temp 文件夹下 而运行基于microsoft .net framework 框架下的应用程序 需要对temp 具有读写的权限 ,所以程序运行产生的临时文件不能存储或读取 ,或者路径不存在的情况下都会产生编译错误。
解决方法:
1、设置c:windows\temp 目录访问权限 temp--> 属性-->安全-- > 添加了iis_user和network service -->都赋予其权限为 读 和 写--> 确定
2、先关闭iis,清空 c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\目录,再重启IIS,然后给c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\目录增加network service和了iis_user用户权限,并设置为读取和写入权限,添加方法见第1步。
3、给网站文件目录添加users和network service用户权限,并设置权限为读取和运行,添加方法见第1步。
在iis7下比较常见此问题,一般按以上步骤操作后即可解决,如果还不行,可给上面几个目录增加everyone和aspnet的权限测试一下。