2015-06-19 44 views
0

有關場景如何更改正在使用的IIS應用程序池域帳戶的本地化設置

  • 3 FWE(前端網絡)服務器
  • 2 DC(小學/中學)服務器的幾個事實
  • 在帳戶創建本地化的時間爲的en-US所有服務器
  • 從那時起,所有服務器已經改爲使用EN-AU定位
  • 上個
  • 賬戶正在使用的每個FWE配置IIS應用程序池(集成模式
  • 當ASP.Net運行時正在執行它肯定使用正確的服務帳戶
  • 服務帳戶沒有「登錄作爲用戶的權限

問題是,當前正在運行的線程仍然有文化和UICulture報告爲en-US!

我錯誤地認爲應用程序池將加載域的服務帳戶的本地化設置?

我們不希望在每個FWE

任何建議,歡迎明確設置元素!

回答

0

您將需要此設置這一些如何。沒有考慮應用程序池標識中的本地設置。

一種方法是基於瀏覽器的標題信息的文化。瀏覽器廣泛地投射出用戶喜歡的文化。

見下面的鏈接: 自動檢測和設置文化與代碼

http://weblog.west-wind.com/posts/2014/Mar/27/Auto-Selecting-Cultures-for-Localization-in-ASPNET

最簡單的實現:

if (HttpContext.Current != null && HttpContext.Current.Request.UserLanguages != null) 
{ 
    culture = Request.UserLanguages[0];  
} 
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culture); // de-DE 
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture); 

Request.UserLanguages持有的瀏覽器設置:一個列表文化以良好的秩序。你需要處理這個問題,並決定當這不是你的en-US/en-AU時該怎麼做。

本文詳細介紹了更詳細的處理和其他問題。

或者,您可能能夠挖掘System.AppDomain.CurrentDomain以查看應用程序池用戶/它的文化是否存在於該對象中。

祝你好運! Brian

+0

謝謝Brian。我們在10分鐘前發現了一個修復程序,它涉及在每個前端Web服務器上編輯HKEY_USERS \ XXX \ ControlPanel \ International。顯然,域帳戶的SID存在於每個FWE的本地註冊表中。每個FWE在第一次將本地化設置(en-US)添加到本地IIS_USERS組時,基本上都採用了快照/緩存。因此,應用程序池正在使用本地配置文件數據和域數據的混搭。 對我們來說非常合適 - 因爲我們正在設置一個新的PRD環境,所以我們不希望在這一點上改變代碼庫1全部排序。 再次感謝。 – mrellipse

相關問題