Глобальная проблема синхронизации мьютекса - PullRequest
0 голосов
/ 29 ноября 2018

Я использую 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 может выполняться без владения потоком.Глядя на все в Интернете, это не должно произойти.Я дергаю себя за волосы ...

Буду признателен за любую помощь.

...