当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 看到本质而不是现象--解决ASP.NET CS0016的问题

ASP.NET
asp.net 转换人民币大小金额
编写的vs2005水晶报表程序在vs2008下正常使用的一些实现方法
asp.net下获取浏览器类型的实现代码
asp.net coolite 删除时弹出确定按钮
asp.net Forms身份验证和基于角色的权限访问
asp.net 用继承方法实现页面判断session
asp.net DataGrid 中文字符排序的实现代码
asp.net 利用IIS的404错误将文件重写成目录的简单方法
Aspx/Asp.net 防注入程序 V1.0
C# 数组查找与排序实现代码
ASP.NET通过使页面动态加载不同CSS实现多界面
LINQ学习笔记:XDocument文档与XML声明
ASP.NET教程:如何动态写入服务器端控件
XML+XSLT+CSS+JQuery+WebService组建Asp.Net网站
ASP.NET效率陷阱之:Attributes
.NET vs J2EE:面对SOA的荒谬与误解
ASP.NET学习篇(1):开篇
ASP.NET学习篇(2):安装与配置
ASP.NET学习篇(3):几个简单的ASP.ENT的例子
ASP.NET学习篇(4):服务器端的控件

看到本质而不是现象--解决ASP.NET CS0016的问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 187 ::
收藏到网摘: n/a

往往一个规范的开发Team中,一个新来者最容易让这个Team的老队员们感到头痛。所以很多时候,我们都安排新员工一批的进来,并尽可能的给每个新手指派一个指导老师。
其实并非我们不看重这些新手的能力,事实上很多时候,他们的技术水平和编程能力非常非常的高,所以我们是害怕他们创新的力量,记忆中无数次了,经常是新来的人一脸委屈的解释说,"我什么也没做",不过结果有时是灾难的,比如VSS的某个项目文件被莫名破坏了,DailyBuild莫名中断了,一个运行很稳定的模块突然出现奇怪的Bug。甚至是一秒钟前还能正常运行的程序,突然不能运行了。
那些所谓的老鸟,往往蒙头大干很久,才发现原来原来,某个地方被小小修改了一下,而往往这种修改是这样的机缘巧合。而更多的时候,这些老鸟,把这个问题程序化的变成了运气说,运气好,你能解决这个问题,运气更好一点,你还能找到原因。
这两天我们Team的一个老鸟就碰到了这样的问题,ASP.NET的项目突然在一个新来的开发人员的机器上报下面的错误,老鸟又看到了委屈而无畏的神情---对方的潜意识在说,"我什么也没做,一分钟前还好好的,突然就这样了"
错误信息:
CS0016 : 未能写入输出文件
C:\Windows\Microsoft.NET\Framework\V1.1.4322\Temporary ASP.NET File\logtest\ae3a7b05\21b60d47\kxxnk5bg.dll --拒绝访问

ͼƬСŴ

然后老鸟接着做了很多尝试
关闭索引服务 --结果错误依旧!
重新启动机器 ----结果错误依旧!
使用 aspnet_regiis.exe 重新注册一下----结果错误依旧!
修改Network Services在Temporary ASP.NET File目录下的权限到最高----结果错误依旧!
修改IIS Application Pool 的启动用户为系统用户 ---成功
-----看来是network Service 用户的权限问题,总算有了方向 找到了FileMon
10秒钟发现了问题,原来Network Services 不能存取系统目录的Temp目录
ͼƬСŴ

ASP.NET 会使用这个目录做编译吗? 但修改Network Services帐户对Temp目录的权限之后,问题解决了。
ͼƬСŴ

老鸟自己也很奇怪,ASP.NET为什么会使用Temp目录做某一个文件的即时编译? 第二,为什么刚刚还没有问题的机器,突然需要做这样的权限设置?
吃饭的时候,如果有酒,我们差点一起敬他一杯,因为---他的运气不错!