KB-ASP.NET 1.1發生DLL Access is denied錯誤
這是同事遇到的問題,長久以來,他的個人電腦對他呵護倍至,深怕他寫程式抓Bug太過勞累,每天會有十幾次不定期的強迫休息時間。前一秒鐘還跑得好好的ASP.NET網站,下一秒要用Visual Studio Debug時,便浮出以下的錯誤訊息,此時除了等待或重新開機外,IISRESET也無濟於事。依據經驗,等待時間長短不一,最長可能會持續五分鐘。
Server Error in '/DT' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Access is denied: 'MyUtility'.
Source Error:
Line 196: <add assembly="System.EnterpriseServices, ...
Line 197: <add assembly="System.Web.Mobile, ...
Line 198: <add assembly="*"/>
Line 199: </assemblies>
Line 200: </compilation> |
Source File: c:\windows\microsoft.net\framework\v1.1.4322\Config\machine.config Line: 198
Assembly Load Trace: The following information can be helpful to determine why the assembly 'MyUtility' could not be loaded.
=== Pre-bind state information ===
LOG: DisplayName = MyUtility
(Partial)
LOG: Appbase = file:///c:/inetpub/wwwroot/DT
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===
LOG: Policy not being applied to reference at this time (private, custom,
partial, or location-based assembly bind).
LOG: Post-policy reference: MyUtility
LOG: Attempting download of new URL file:///c:/windows/microsoft.net/framework/
v1.1.4322/Temporary ASP.NET Files/fe/ffe28ec7/fa5d1b07/MyUtility.DLL.
LOG: Attempting download of new URL file:///c:/windows/microsoft.net/framework/
v1.1.4322/Temporary ASP.NET Files/fe/ffe28ec7/fa5d1b07/MyUtility/MyUtility.DLL.
LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/DT/bin/MyUtility.DLL.
LOG: Policy not being applied to reference at this time (private, custom, partial,
or location-based assembly bind).
LOG: Post-policy reference: MyUtility, Version=1.0.2636.34223, ...
|
Version Information: Microsoft .NET Framework Version:1.1.4322.2407; ASP.NET Version:1.1.4322.2407
由於訊息中出現Access is denied: 'MyUtility',原本期望用Process Monitor可以快速找出問題,沒想到連半個Access Denied的Log也沒看到。
重新出發,用錯誤訊息的關鍵字找到這篇微軟KB,原來是Indexing Service搞的鬼,在製作索引的過程中會鎖定Temporary ASP.NET目錄一到五分鐘(剛好與經驗中等待時間吻合),造成ASP.NET程式無法運作。解決方式是停用Indexing Service或將Temporary ASP.NET目錄排除在索引掃瞄範圍之外,今天停用服務後跑了一整天,同事再也沒藉口進行"非自願休息"了。