Где файл журнала с использованием производственного профиля с NServiceBus GenericHost и настройками log4net по умолчанию при установке в качестве службы?

#log4net #nservicebus

#log4net #nservicebus

Вопрос:

У меня очень простой NServiceBus.Host.exe приложение, использующее ведение журнала по умолчанию и Производственный профиль. Согласно документации, это должно привести к добавлению файла журнала, который должен появиться в той же папке, что и EXE. Однако, когда я запускаю приложение как службу, файл журнала не отображается в той же папке, что и EXE, и до сих пор я вообще не смог его найти. Служба работает как локальная система. Нужно ли мне запускать его как учетную запись пользователя и искать файл где-нибудь в папке AppData? Находится ли он под c:windows где-нибудь? Где это и есть ли у меня способ, чтобы он действительно регистрировался в файле в той же папке, что и EXE, как указано?

Обновление: используя ProcMon и ProcExp из SysInternals, я вижу, что нет попыток создать какой-либо файл журнала в папке, где существует мой EXE-файл, и нет никаких ошибок при разрешении файлов при попытке создать файл журнала где угодно, по крайней мере, не из PID службы (если по какой-либо причинеlog4net запускает другой процесс для выполнения этой работы, тогда я, возможно, пропустил его).

Комментарии:

1. Попробуйте заглянуть в c:windowstemp

2. @hugh — ничего в c:windowstemp 🙁

Ответ №1:

Оказывается, служба фактически не была запущена в производственном профиле. По какой-то причине мне пришло в голову, что службы будут запускаться в производственном профиле по умолчанию, в то время как при запуске в интерактивном режиме по умолчанию будет использоваться Lite. Это не так — служба будет использовать профиль Lite, если вы не укажете иное. Я изменил свою команду для установки службы из: NServiceBus.Host.exe /install /DisplayName:MyService для NServiceBus.Host.exe /install /DisplayName: MyService NServiceBus.Производство

и это устранило проблему.