我已经在视图页面上使用Servicestack.Razor.创建了一个视图,我正在尝试使用以下代码获取会话。
var session = GetSession<AuthUserSession>().ToJson();当我把这段代码放到视图页面上时,我得到了以下错误:
System.TimeZoneNotFoundException
Exception of type 'System.TimeZoneNotFoundException' was thrown.
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): mscorlib.StackTrace如下:
Exception stack trace:
at System.TimeZoneInfo.get_Local () [0x00000] in <filename unknown>:0
at ServiceStack.Text.Common.DateTimeSerializer..cctor () [0x00000] in <filename unknown>:0 这是Servicestack.Text中的错误吗?我该如何解决这个问题呢?
注意:我在Ubuntu 12.10上使用Mono 3.0.10
发布于 2016-02-10 06:17:55
我在处理一个项目时也遇到了同样的错误。在我的例子中,这是因为我没有正确导出的TZ环境变量。我不得不将以下内容添加到我的UI init shell脚本中:
read TZ 2>/dev/null < /etc/timezone
export TZ发布于 2013-10-25 07:26:05
Mono有一个已知且由来已久的Timezone bug that affects Windows,但只要TimeZone数据库安装在/usr/share/zoneinfo中,它就应该可以在Linux中工作。但是,如果我尝试序列化日期,这与我在Windows中得到的错误完全相同,所以这会让我认为由于某种原因,/usr/share/zoneinfo不合适。
如果不存在,Comment 6中的变通方法可能会对您有所帮助。但是,我认为你必须从源代码构建ServiceStack.Text,这样你才能应用变通方法。
在/usr/share/zoneinfo中创建指向实际安装位置的符号链接可能更容易。
发布于 2018-05-03 17:13:55
Windows遵循操作系统进行与时区相关的操作,不幸的是,.NET和Linux有不同的时区名称。如果需要,可以使用TimeZoneConverter在它们之间进行转换。
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
timeZoneName = TZConvert.WindowsToIana(timeZoneName);
}
var zoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName);https://stackoverflow.com/questions/18395018
复制相似问题