2013-08-23 4 views
2

Servicestack.Razor.을 사용하여보기를 만들었습니다.보기 페이지에서 다음 코드를 사용하여 세션을 가져 오려고합니다. 내가보기 페이지에이 코드를 삽입하면ServiceStack.Razor를 사용하는 ViewPage의 System.TimeZoneNotFoundException

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. 

스택 트레이스는 다음과 같습니다 :

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의 버그인가? 이 문제를 어떻게 해결할 수 있습니까?

참고 : 나는 우분투 12.10

답변

0

모노에 모노 3.0.10을 사용하고하는 것은 & 오랜 Timezone bug that affects Windows을 알려진했지만 시간대 데이터베이스는/usr/share/zoneinfo 표준에 설치되어있는 그것은 한 리눅스에서 작동해야한다. 그러나 그것은 날짜를 직렬화하려고하면 Windows에서 얻는 것과 정확히 똑같은 오류입니다. 그래서 어떤 이유로 든/usr/share/zoneinfo가 부적절하다고 생각하게 만듭니다.

거기에 없으면 Comment 6의 해결 방법이 도움이 될 수 있습니다. 그런 다음 해결 방법을 적용 할 수 있도록 소스에서 ServiceStack.Text를 작성해야한다고 생각합니다.

실제로/usr/share/zoneinfo에서 인 지점을 가리키는 심볼릭 링크를 만드는 것이 더 쉽습니다.

1

프로젝트 작업 중이 동일한 오류가 발생했습니다. 필자의 경우 TZ 환경 변수가 적절히 수출되지 않았기 때문입니다. UI 초기화 셸 스크립트에 다음을 추가해야했습니다.

read TZ 2>/dev/null < /etc/timezone 
export TZ