2013-08-23 57 views
2

我創建了一個視圖,使用Servicestack.Razor.在視圖頁上,我試圖使用下面的代碼獲取會話。System.TimeZoneNotFoundException在ViewPage上使用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. 

堆棧跟蹤是如下:

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

回答

0

單用單3.0.10具有已知的&長期Timezone bug that affects Windows但由於時區數據庫安裝位於/ usr/share/zoneinfo中它應該在Linux中,只要工作。然而,如果我嘗試序列化一個日期,那麼這與我在Windows中得到的完全一樣,所以這會讓我認爲出於某種原因,/ usr/share/zoneinfo不合適。

如果不存在,則Comment 6中的解決方法可能對您有所幫助。但是,我相信你必須從源頭上構建ServiceStack.Text,以便可以應用該解決方法。

在/ usr/share/zoneinfo上創建符號鏈接可能更容易,該鏈接指向實際安裝的的任何位置。

1

我在處理項目時遇到了同樣的錯誤。就我而言,這是因爲我沒有正確導出的TZ環境變量。我不得不將以下內容添加到我的UI init shell腳本中:

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