微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

donet5在centos的时区问题

在windows下开发程序,hangfire中用到了时区,采用的是本地时区:

TimeZoneInfo zone = TimeZoneInfo.Local;

RecurringJob.AddOrUpdate("任务", () => job.ExecuteAsync(), "0 0 23 * * ?", zone);

结果部署在centos中时提示以下错误

system.invalidOperationException: Recurring job can't be scheduled, see inner exception for details.
 ---> System.TimeZoneNotFoundException: The time zone ID 'China Standard Time' was not found on the local computer.
 ---> System.IO.FileNotFoundException: Could not find file '/usr/share/zoneinfo/China Standard Time'.
File name: '/usr/share/zoneinfo/China Standard Time'
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
   at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at Internal.IO.File.ReadAllBytes(String path)
   at System.TimeZoneInfo.TryGetTimeZoneFromLocalMachine(String id, TimeZoneInfo& value, Exception& e)
   --- End of inner exception stack trace ---
   at System.TimeZoneInfo.FindSystemTimeZoneById(String id)
   at Hangfire.RecurringJobEntity..ctor(String recurringJobId, IDictionary`2 recurringJob, ITimeZoneResolver timeZoneResolver, DateTime Now)
   --- End of inner exception stack trace ---
   at Hangfire.Server.RecurringJobScheduler.ScheduleRecurringJob(BackgroundProcessContext context, IStorageConnection connection, String recurringJobId, RecurringJobEntity recurringJob, DateTime Now)
后来写一个测试程序将windows10和Centos的时区ID和名称列举出来:
Window10的时区共计141个:

 

 

cnetos的时区,共425个:

 

 

因此最后将代码改为如下,部署后运行成功:

TimeZoneInfo zone = TZConvert.GetTimeZoneInfo("Asia/Shanghai");
RecurringJob.AddOrUpdate("任务", () => job.ExecuteAsync(), "0 0 23 * * ?", zone);

 




版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。