2012-12-18 54 views
0

我發現一個特定的情況,我們沒有設置頁面加載後的線程文化。不一致地設置ASP.net中的線程文化 - 壞主意?

我們也有一個非常罕見的情況,某人的文化沒有明顯的原因轉換。

這兩件事情有關嗎?

我知道當您使用線程池時,並非所有的東西都會在池中重置。線程文化是否是這些事情之一,因此一個人的文化的線程已被回饋給池中的人泄漏到下一個人的線程中?

+0

這可能是一個壞主意。如果我去你的網站並隨機獲取日文版,我可能會認爲你的網站只有日語而且永遠不會返回。 – Earlz

+2

有點相關的問題,在答案的建議不要指望線程被重置:http://stackoverflow.com/questions/1467194/does-changing-the-culture-of-a-threadpool-thread-affect-它什麼時候得到回報 –

回答

2

鑑於michielvoo的評論中的link中的信息,我認爲這兩件事很可能是相關的。

您可能希望從HTTP請求頭Accept-Language(在Application_BeginRequest方法重寫Global.asax中)手動設置線程的文化和使用默認的後備文化如果頭部丟失(取決於你的網站的目標受衆,但在一般優選使用en)。

然而如果可能的話,它是一個非常很好的做法,讓用戶/訪問者覆蓋這樣的文化/語言設置 - 瀏覽器是邪惡的,有時文化設置,可能是出於用戶的控制(如網吧而在用戶不說話的國家度假)

+1

這意味着這個值沒有設置的情況已經被修復了我只是感興趣,如果有人確定線程文化不會被重置爲每個頁面加載。我們有許多規則來確定文化,而不僅僅是瀏覽器標題。我相信重寫InitializeCulture(這是我們所做的)優於更改Application_BeginRequest。 –

+0

在這種情況下,唯一與你有關的部分是michielvoo的鏈接。另外你也許是對的,對於.aspx,InitializeCulture可能是首選的,如果它以某種方式集中的話,例如在母版頁中。 –

+0

是的,我們重寫System.Web.UI.Page頁面部分是爲了這個目的。 –

相關問題