Я использую Global Mutex для блокировки записи журнала на веб-сайте .NET, на котором выполняются несколько рабочих процессов IIS.
Я получаю «Метод синхронизации объектов был вызван из несинхронизированного блока кода» при выполненииMutex. Выпускать, когда я пытаюсь написать запись в журнале.
Код выглядит следующим образом:
public void Log_Error(string Error) {
Mutex Mt;
Mt = null;
try {
Mt = new Mutex(false, "MyUniqueMutexName");
Mt.WaitOne();
... Write to a log file
}
finally {
if (Mt != null)
Mt.ReleaseMutex();
}
}
При каких обстоятельствах ReleaseMutex может выполняться без владения потоком.Глядя на все в Интернете, это не должно произойти.Я дергаю себя за волосы ...
Буду признателен за любую помощь.