#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.Производство
и это устранило проблему.