Куда я должен поместить свой файл журнала для приложения asp.net?

StackOverflow https://stackoverflow.com/questions/6530

  •  08-06-2019
  •  | 
  •  

Вопрос

У меня есть приложение ASP.NET, для которого мы написали наш собственный модуль ведения журнала.

Мой вопрос в том, где находится стандартное место для записи файла журнала?То есть.веб-сайт будет работать под именем анонимного пользователя (например,IUSR на IIS7), и мне нужно место, где, я знаю, у него будет разрешение на запись.

Ваше здоровье,

Это было полезно?

Решение

Папка App_Data находится в корневом каталоге проекта.Он не передается веб-запросам;так что другие люди не смогут за этим пронюхать.

Другие советы

Я бы предложил поместить файл журнала на отдельный диск, хотя это должно дать вам небольшой прирост производительности, чтобы вы не пытались одновременно читать и записывать на тот же диск, что и веб-сайт.Если вы не можете поместить файл журнала на отдельный диск, то я бы просто выбрал папку по вашему выбору.

В любом случае вам придется предоставить учетной записи "Сетевой службы" разрешения "Изменять" доступ к нужной папке.

С другой стороны, если у вас есть доступ к базе данных, то внесите туда информацию.Это будет намного быстрее, чем доступ к жесткому диску, и не будет общедоступным.Вы также сможете довольно легко создавать отчеты на основе полученных данных.

Я не в состоянии изменять разрешения для папок (особенно за пределами домашней папки виртуального каталога), и у меня еще нет папки App_Data, поэтому я немного не решаюсь пойти на это.

Итак, на данный момент я использую папку CommonApplicationData.

  • В Vista / Server 2008 это C:\ProgramData\
  • В XP / Server 2003 это C:\Documents и Настройки \ Все пользователи \ Данные приложения\

Я не в состоянии изменять разрешения для папок (особенно за пределами домашней папки виртуального каталога), и у меня еще нет папки App_Data, поэтому я немного не решаюсь пойти на это.

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

Вы также можете войти в журнал событий Windows или в таблицу в базе данных.Как часто люди просматривают журнал событий?Если он проверяется на регулярной основе, запись в таблицу значительно упрощает отчет, поскольку тривиально изменить порядок и показать только последние X событий за текущий период времени.Журнал событий Windows вы также можете запросить журнал событий Windows с помощью PowerShell или с Анализатор журналов.

Нажимать app_data - лучшая идея, просто имейте в виду, что при публикации проектов, если отмечена опция "Удалить все существующие файлы перед публикацией", текущие данные в папке исчезнут.Обходной путь заключается в том, чтобы пропустить удаление папки app_data.

Другой вариант ведения журнала - использовать какой-нибудь существующий фреймворк, такой как Log4net.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top