2009-08-21 29 views
7

我遇到了使用內置全球化設施的ASP.NET應用程序崩潰的情況。ASP.NET Globalization:Culture =「auto」page directive with neutral culture crash?

在與文化=「自動」指令,用中性文化爲他們的瀏覽器語言(如「ZH-漢斯」)用戶的ASP.NET頁面會產生以下異常:

文化'zh-Hans'是一種中立的文化。它不能用於 格式和解析,因此 不能被設置爲線程當前的 文化。

在System.Globalization.CultureInfo.CheckNeutral(CultureInfo的 培養) 在System.Threading.Thread.set_CurrentCulture(CultureInfo的 值) 在System.Web.UI.Page.set_Culture(字符串 值) 在ASP .somePage_aspx .__ BuildControlTree(somePage_aspx __CTRL) 在ASP.somePage_aspx.FrameworkInitialize()

任何想法?投入到Culture/UICulture參數中的垃圾通常似乎被忽略,但這種情況導致了未處理的異常。

回答

2

您不能在開始請求中設置文化嗎? (注意:asp.net請求可以在線程之間跳轉,因此您需要掛接到正在移動的線程)。

+0

嗨安德魯阿諾特。我在我的<%@Page %>中放置了文化=「auto」uiculture =「auto」。即使同樣的例外與文化'zh-Hans'是一種中性文化。它不能用於格式和解析,因此不能被設置爲線程的當前文化。這個例外情況在單頁剩下的所有頁面都能正常工作.------請幫我 – 2014-06-19 12:49:07

6

我遇到了同樣的問題,在我的頭靠在牆上摸了一會兒後,在鼻子下面找到了答案。

我的問題是不理解的CurrentCulture的CurrentUICulture之間的差異。不同的是CurrentCulture用於格式化日期,數字和執行排序,CurrentUICulture用於從資源查找特定於文化的字符串。

我有一些代碼,看起來像

return input.ToString("C", System.Globalization.CultureInfo.CurrentUICulture); 

時應該已經

return input.ToString("C", System.Globalization.CultureInfo.CurrentCulture); 

當你開始嘗試格式特定的文化項目與非特定的文化,你會得到系統.NotSupportedException。

+0

這可能不是完全相同的問題,但你應該尋找一些代碼,你試圖通過CurrentUICulture分配一箇中性文化到某些東西期待您可以通過CurrentCulture訪問更具體的文化。 – mjallday 2009-11-03 03:48:03

相關問題