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

往往一个规范的开发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 --拒绝访问

475)this.width=475;">

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

10秒钟发现了问题,原来Network Services 不能存取系统目录的Temp目录

475)this.width=475;">

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

475)this.width=475;">

老鸟自己也很奇怪,ASP.NET为什么会使用Temp目录做某一个文件的即时编译? 第二,为什么刚刚还没有问题的机器,突然需要做这样的权限设置?

吃饭的时候,如果有酒,我们差点一起敬他一杯,因为---他的运气不错!

(0)

相关推荐

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

    往往一个规范的开发Team中,一个新来者最容易让这个Team的老队员们感到头痛.所以很多时候,我们都安排新员工一批的进来,并尽可能的给每个新手指派一个指导老师.其实并非我们不看重这些新手的能力,事实上很多时候,他们的技术水平和编程能力非常非常的高,所以我们是害怕他们创新的力量,记忆中无数次了,经常是新来的人一脸委屈的解释说,"我什么也没做",不过结果有时是灾难的,比如VSS的某个项目文件被莫名破坏了,DailyBuild莫名中断了,一个运行很稳定的模块突然出现奇怪的Bug.甚至是一秒钟

  • 三种方法解决ASP.NET Core 6中的依赖项

    依赖性注入是一种技术,它允许我们注入一个特定类的依赖对象,而不是直接创建这些实例. 使用依赖注入的好处显而易见,它通过放松模块间的耦合,来增强系统的可维护性和可测试性. 依赖注入允许我们修改具体实现,而不必改变依赖于它们的依赖类型. ASP.NET Core 很重视依赖注入技术.ASP.NET Core 中内置的依赖注入提供功能模块,并不像 StructureMap 和 Ninject 等IoC(控制反转)容器那样功能丰富,但它速度快,易于配置,而且易于使用.我们可以使用它在 ASP.NET C

  • 如何解决ASP.NET新增时多字段取值的问题

    ASP.NET 开发人员在卡发时经常会碰到一个情况,就是新增的页面中字段太多,在点击保存的时候需要一个一个的赋值实体或者构建SQL语句去保存.这样不仅浪费体力还需要占用大量的文本行控件去写代码.经过构思是否可以使用一种更方便的办法去解决呢?提高代码的内聚性. 1.思路 我们知道一般新增页面最多的就是一大堆文本框让用户输入内容,然后点击保存按钮进行提交将数据持久化到数据库. 在点击提交的时候传统方式就是一个一个文本框的读取赋值. HTML代码如下: <asp:TextBox ID="Text

  • 解决asp.net上传文件超过了最大请求长度的问题

    错误消息:超过了最大请求长度 错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S. 解决方案 1. 修改web.config文件可以改变这个默认值 <configuration> <system.web> <httpRuntime maxRequestLength="1048576" executionTimeout="3600" /> </system.web> <configuratio

  • MySQL慢查询现象解决案例

    目录 背景 1.查看上述语句的执行计划 2.测试模拟 背景 线上慢查询日志监控,得到如下的语句:  发现:select doc_text from t_wiki_doc_text where doc_title = '谢泽源'; 这条语句昨天执行特别的慢 1.查看上述语句的执行计划  mysql> explain select doc_text from t_wiki_doc_text where doc_title = '谢泽源'; +----+-------------+-------+--

  • 解决asp.net Sharepoint无法连接发布自定义字符串处理程序,不能进行输出缓存处理的方法

    问题描述: 无法连接发布自定义字符串处理程序,不能进行输出缓存处理.IIS 实例 ID 为"1772638466", URL 为"http://XXXX.XXX.XXX/EnglishWorld/Default.aspx". 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心. 在系统日志大片出现(除了URL不同),但貌似对系统没什么影响,能正常使用. 此问题不会影响正常使用,但日志很快就满了

  • 解决ASP.NET中的各种乱码问题总结

    经常发现有人被乱码困扰着,而我感觉比较幸运,很少为此烦恼过. 在这篇博客中,我将把我想到的一些与乱码有关的经验总结出来,供大家参考. 页面显示乱码问题 在一个网站中,有些页面会正常显示,然而,有些页面会显示成乱码. 如果发生这种情况,可以检查一下web.config和文件编码. 如果web.config是这样配置的: <globalization fileEncoding="utf-8" /> 而文件的编码不是UTF-8: 那么就会有乱码问题. 注意:反之是不是会出现乱码的

  • 解决asp.net core在输出中文时乱码的问题

    前言 作为一个.NET Web开发者,我最伤心的时候就是项目开发部署时面对Windows Server上贫瘠的解决方案,同样是神器Nginx,Win上的Nginx便始终不如Linux上的,你或许会说"干嘛不用windows自带的NLB呢",那这就是我这个小鸟的从众心理了,君不见Stack Overflow 2016最新架构中,用的负载和缓存技术也都是采用在Linux上已经成熟的解决方案吗.没办法的时候找个适合的解决办法是好事,有办法的时候当然要选择最好的解决办法. 所幸,.ASP.NE

  • 解决ASP中http状态跳转返回错误页的问题

    IIS默认的错误页是很不友好的,很多人看到默认的错误页时都会说:网站打不开了!白白损失了这部分流量.而如果错误页直接跳转到首页又对搜索引擎很不友好,搞不好首页还会被封掉.所以根据情况,有两个方法解决这个问题: 如果是博客等内容型的网站,可以返回一个带有404错误的搜索框让访客搜索,若是电子商务型网站,则可以返回一个带有404错误的进度条进行跳转.这两种方法即照顾了访客又顾及到了SEO. 可以在Google webmaster tools中查看自己网站错误页有多少. 修改默认错误页的方法很简单:在

  • 解决ASP.NET中"/"应用程序中的服务器错误的方法

    学习asp.net中讲解验证控件问题时,我的程序运行时总是提示这样的问题:"/"应用程序中的服务器错误.如下图: 从网上找到了相关的方法: 在webconfig中找到 <appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> <addkey="ValidationSettings:Unobtru

随机推荐