У меня есть два веб-приложения ASP.NET. Один отвечает за обработку некоторой информации и запись в файл журнала , а другое приложение отвечает за чтение файла журнала и отображает информацию на основе запроса пользователя.
Вот мой код для писателя
public static void WriteLog(String PathToLogFile, String Message)
{
Mutex FileLock = new Mutex(false, "LogFileMutex");
try
{
FileLock.WaitOne();
using (StreamWriter sw = File.AppendText(FilePath))
{
sw.WriteLine(Message);
sw.Close();
}
}
catch (Exception ex)
{
LogUtil.WriteToSystemLog(ex);
}
finally
{
FileLock.ReleaseMutex();
}
}
А вот мой код для Читателя:
private String ReadLog(String PathToLogFile)
{
FileStream fs = new FileStream(
PathToLogFile, FileMode.Open,
FileAccess.Read, FileShare.ReadWrite);
StreamReader Reader = new StreamReader(fs);
return Reader.ReadToEnd();
}
Мой вопрос, достаточно ли приведенного выше кода для предотвращения блокировки в среде web-сада?
РЕДАКТИРОВАТЬ 1: Грязное чтение в порядке.
РЕДАКТИРОВАТЬ 2: Создание Mutex с новым Mutex (false, "LogFileMutex"), закрытие StreamWriter