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

ASP.NET
Script:WINDOWS Script 枚举运行中进程
使用Flex结合Webservice完成域名查询
VSTS Team System 总算装好了。
用于部署数据库的 数据库初始化工具 xzSQLDeploy Tools V1.0 (for SQLServer) f...
一个将阿拉伯数字转换成中文大写的最简单算法
SCRIPT:使用Windows Script 关闭和打开指定程序
Script:使用WINDOWS脚本访问WEB SERVICES
asp.net连接Access数据库
VB中IIS Application发布可能出现的问题
VB打包后的安装问题
Nhibernate的数据分页技术(续)
使用API函数复制文件,可显示进度。
VB打包技巧
VB.NET实现DirectSound9 (9) 实现示波器
VB.NET 实现DirectSound9 (10) 均衡器
[水晶报表部署系列之一]轻松搞定水晶报表9.2打包
DataGrid 中双向排序的一种办法
利用System.EventHandler来实现两个窗体间的事件调用
多线程应用程序中调用窗体的一点心得
Smart Client之旅一:用B/S方式运行Exe应用程序

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


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