1
我有一個在ASP.NET應用程序中使用的單例記錄器。有時候我在這一行The process cannot access the file
錯誤:該進程無法訪問文件'C: inetpub wwwroot MyApp 5-23-2011.log',因爲它正在被另一個進程使用。
StreamWriter sw = new StreamWriter("Path to log file", true);
我通過Process Explorer
檢查文件句柄和w3wp.exe
擁有手柄,似乎來自同一過程的不同的線程導致的問題。
我已經在上面的代碼中使用了一個lock
,但仍然出現錯誤。 如何確保所有線程都可以安全地使用相同的流?
你在鎖定什麼?請添加包含鎖定語句的行。 – 2011-05-23 03:19:53
爲什麼不直接用現有的日誌庫去解決這些問題呢?有log4net,elmah,MS企業日誌應用程序塊... – nickytonline 2011-05-23 03:22:39
我創建了一個新問題,並在其下添加了完整源代碼:http://stackoverflow.com/questions/6092543/singleton-compact-logger-for-asp-網絡應用程序 – Xaqron 2011-05-23 03:28:46