Проблема с разрешением на запись или путем при сохранении файлов журнала в приложении MVC5 - - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь написать сообщения журнала исключений, используя StreamWriter, в моем веб-приложении MVC5.

Основной метод -

public bool WriteApplicationException(string exp_message)
    {
        try
        {
            filename = string.Format("LogMessages\\{0}_{1}.log", "Exception", DateTime.Now.ToShortDateString());

            string logFilePath = string.Format(Path.Combine(@"{0}\{1}", AppDomain.CurrentDomain.BaseDirectory, filename));

            //logFilePath = logFilePath.Replace(@"\\", @"\");

            StringBuilder sb = new StringBuilder();
            sb.AppendLine("----------------------------------------------------");
            sb.AppendLine(DateTime.Now.ToString());
            sb.AppendLine(exp_message);
            sb.AppendLine("----------------------------------------------------");

            //StreamWriter swr = new StreamWriter(logFilePath, true)
            using (StreamWriter swr= File.AppendText(logFilePath))
            {
                swr.Write(sb.ToString());
                swr.Flush();
            }

            return true;
        }
        catch (Exception exp)
        {
            return false;
        }
    }

Я вызываю его при переопределении void OnException в мой соответствующий класс контроллера. Генерируемый путь таков: метка диска: \ LogProject.UI \ LogProject.UI \ LogProject.Web \ LogMessages \ Exception_3 / 2 / 2020.log

Но это исключение выбрасывание таково -

{"Could not find a part of the path 'drivelabel:\\LogProject.UI\\LogProject.UI\\LogProject.Web\\LogMessages\\Exception_3\\2\\2020.log'."}

Итак, может ли быть какая-либо проблема разрешения на чтение / запись, которая предотвращает это? Или что-нибудь с брандмауэром? Второй самый маловероятный. Что бы это могло быть? Как я уже сказал, путь очень существует и находится внутри самой структуры проекта. Не снаружи Какая проблема здесь? Есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 02 марта 2020

В сообщении не говорится о том, что у вас нет необходимых разрешений, оно говорит о том, что этот путь или его часть не существует. Вам нужно вручную (или программно) создать этот путь, прежде чем вы сможете писать в ot.

...