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

ASP.NET
二级域名Cookie问题的解决方法
如何为asp.net网站项目添加子项目
asp.net用url重写URLReWriter实现任意二级域名
asp.net 序列化and反序列化演示
asp.net Timer的使用方法
AjaxControlToolKit DropDownExtender(下拉扩展控件)使用方法
AjaxControlToolKit CalendarExtender(日历扩展控件)的使用方法
让GridView只显示特定用户的数据的方法
让GridView只更新某些特定的数据的方法
ajaxControlToolkit中CascadingDropDown的用法说明
axp.net ScriptManager的简单用法
把程序集安装到全局程序集缓存中的步骤
引用全局程序集缓存内的程序集的方法
asp.net COOKIES需要注意的一点
asp.net UrlReWriter使用经验小结
页面导出为Excel的时间格式的问题
asp.net cookie清除的代码
Asp.net XMLHTTP封装类(GET,Post发送和接收数据)
ASP.NET XmlHttp跨域访问实现代码
Asp.NET 随机码生成基类(随机字母,随机数字,随机字母+数字)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 128 ::
收藏到网摘: 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目录做某一个文件的即时编译? 第二,为什么刚刚还没有问题的机器,突然需要做这样的权限设置?
吃饭的时候,如果有酒,我们差点一起敬他一杯,因为---他的运气不错!