我有一个非常简单的NServiceBus.Host.exe应用程序,它使用默认日志记录和生产配置文件。根据{{3}},这应该会导致附加文件日志出现在与EXE相同的文件夹中。但是,当我将应用程序作为服务运行时,日志文件不会出现在与EXE相同的文件夹中,到目前为止我根本无法找到它。该服务作为本地系统运行。我是否需要将其作为用户帐户运行并在某处的AppData文件夹中查找该文件?它在某个地方的c:\ windows下吗?它在哪里,有没有办法让它实际登录到与宣传的EXE相同的文件夹中的文件?
更新 使用来自SysInternals的ProcMon和ProcExp,我可以看到没有尝试在我的EXE存在的文件夹中创建任何日志文件,尝试在任何地方创建日志文件时也没有任何文件权限错误,至少不是来自PID服务(如果由于某种原因log4net旋转另一个进程来完成这项工作,那么我可能会错过它。)
答案 0 :(得分:1)
事实证明该服务实际上并未在Production配置文件中运行。我出于某种原因得到了我的头脑,默认情况下服务将在生产配置文件中运行,而在交互模式下运行它将默认使用Lite。不是这样 - 除非另行指定,否则服务将使用Lite配置文件。我更改了命令以从以下位置安装服务: NServiceBus.Host.exe / install / displayName:MyService 至 NServiceBus.Host.exe / install / displayName:MyService NServiceBus.Production
这解决了这个问题。