【问题标题】:Windows Service: Wrong DateTime.NowWindows 服务:错误的 DateTime.Now
【发布时间】:2015-04-20 13:38:03
【问题描述】:

我们在 Windows 服务(在用户帐户下运行)中使用 Log4Net 进行日志记录,并且所有翻转文件都在文件名中附加了时间戳。

我们发现 fileName 中的时间相差了 12 小时 30 分钟。 Windows 服务在 PST 时区托管的客户端计算机上运行,​​并且代码在印度编译,我们认为这是一些相关性,因为记录的时间对应于 IST 时间。

代码在 C#、.Net 3.5 和 VS 2008 中

知道如何纠正这个问题吗?

【问题讨论】:

  • 您在 Log4Net 配置文件中是否有任何特定于日期时间格式或区域的设置?
  • 这可能取决于文件名的生成方式。如果它是由 Log4Net 完成的,那么它应该能够由 xml 配置like this 控制。文件名也有可能是由客户端进程生成的,在这种情况下,我会高度怀疑它可能是硬编码的。
  • 该服务应该占用本地时间(机器时间)并使用相同的时间创建日志。所以在 PST 区域它应该花费 PST 而不是 IST 中的机器时间

标签: c# .net windows-services log4net


【解决方案1】:

如果没有在您服务的“登录”选项卡上设置用户,您的服务将在具有自己的区域设置的本地系统帐户中运行。也许该帐户当前设置为 IST。

Follow these instructions 更改系统帐户的区域设置。

【讨论】:

    猜你喜欢
    • 2021-11-03
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多