Could not load file or assembly 'System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Access is denied.

小組裡有台"鬧鬼"(註)的測試機器,老愛出些稀奇古怪的錯誤。今天執行某支ASPX時,發生以上錯誤...

一般人遇到這種狀況,除了重灌.NET Framework、重灌IIS、重灌Windows、去行天宮拜拜跟改行不寫程式之外,多半就只能束手無策。不過如果有Process Monitor在手,情況就不一樣了。

遇到Access Denied型的Error的,我的反射動作就是開啟Process Monitor;由於這個錯誤訊息很精確地指出無法存取的檔案是System.EnterpriseServices.dll,因此加個Path Contains "System.EnterpriseServices"的Filter,再瀏覽一次有問題的URL,立即就找到Access Denied的證據。

利用Jump To直接跳至GAC下的問題Folder,檢查一下權限,果然! 不知怎麼地,該目錄只剩下SYSTEM跟Administrators有權讀取,難怪用NETWORK SERVICE執行的w3wp.exe會吃閉門羹。參考其他類似目錄,補上權限,問題就消失了! 前後只花了不到五分鐘。

講到SystemInternals的這些好工具,306期iTHome的封面故事剛好就以它為主題,而兩位MVP(賴榮樞鄭子璉)與我也分享了自己的使用心得(咳... 還有照片哦,要簽名的人請帶週刊私下找我,目前沒有辦簽書會的計劃),有興趣的人可以去找來翻翻,。

====== 我是分隔線 ======

註: 所謂"鬧鬼"有兩種解釋: 一是指機器上常出現無法理解的怪現象,讓人直呼見"鬼"了;第二種是有程式麻瓜、電腦白目在搞"鬼",進行各種不可思議的系統修改與設定,任誰都猜不出問題會出在這種地方。


Comments

Be the first to post a comment

Post a comment