Вы не можете писать в закрытый файл, поэтому, если вы закрываете его после каждой операции записи, вам также придется (повторно) открывать его перед каждой записью.
Это было бы совершенно неэффективно.Поэтому вместо этого оставляйте его открытым и закрывайте его только после того, как ваше приложение собирается завершить работу (это необходимо, потому что File.Write()
не гарантирует, что при возврате данные будут записаны на диск).Поскольку вы пишете файл из обработчиков HTTP, вы должны реализовать корректное завершение работы сервера и после этого закрыть файл.Подробнее см. Server.Shutdown()
.
Кроме того, если целью записи вашего общего файла является создание какого-либо регистратора, вы можете воспользоваться log
, поэтому вам не придется использовать мьютекс.Подробнее см. net / http set custom logger .