程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 看到本質而不是現象--解決ASP.NET CS0016的問題

看到本質而不是現象--解決ASP.NET CS0016的問題

編輯:ASP.NET基礎
往往一個規范的開發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目錄做某一個文件的即時編譯? 第二,為什麼剛剛還沒有問題的機器,突然需要做這樣的權限設置?

吃飯的時候,如果有酒,我們差點一起敬他一杯,因為---他的運氣不錯!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved