Почему Thread.CurrentThread.CurrentCulture.Name показывает «en-US», если региональный язык моего сервера установлен на английский (Великобритания) - PullRequest
6 голосов
/ 19 мая 2011

У меня есть веб-приложение, которое в различные моменты заставляет пользователей вводить даты, а также отображает даты для пользователей. При отладке (и когда сайт работает на наших тестовых и промежуточных серверах) форматы даты отображаются в формате дд / мм / гггг (при использовании DateTime.ToShortDateString ()). На этих серверах (и в моей среде разработчика есть «Английский (Великобритания)», установленный в качестве языка в региональных настройках Windows. Пока все хорошо. Однако на живом сервере даты отображаются в формате мм / дд / гггг, хотя в прямом эфире На сервере по-прежнему установлен язык «Английский (United Kindgom)». Я видел этот вопрос , который объясняет, как анализировать дату в определенном формате, и я уже знаю, как получить дату в требуемом формате. строковый формат (DateTime.ToString("dd/MM/yyyy")), но мне интересно какие другие настройки ОС на живом сервере вызывают это несоответствие ? Я также видел этот вопрос , но он, похоже, не отвечает на мой вопрос.

Некоторая дополнительная информация: о средах разработки, тестирования и подготовки System.Threading.Thread.CurrentThread.CurrentUICulture.Name = "EN-US" System.Threading.Thread.CurrentThread.CurrentCulture.Name = "EN-GB"

И о живой среде System.Threading.Thread.CurrentThread.CurrentUICulture.Name = "EN-US" System.Threading.Thread.CurrentThread.CurrentCulture.Name = "EN-US"

Ответы [ 4 ]

7 голосов
/ 19 мая 2011

Вы проверили globalization раздел web.config?

Вы можете декларативно установить его так:

    <globalization uiCulture="en-GB" culture="en-GB" />

См .: http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

3 голосов
/ 19 мая 2011

Региональные настройки применяются индивидуально для каждого пользователя, поэтому вам нужно убедиться, что вы изменили региональные настройки для любого пользователя, под которым IIS запускает ваше приложение, например, Network Service.

Похоже, многие другие искалиспособы сделать это (Google "IIS изменить региональные настройки").Похоже, что большинство людей достигают этого путем взлома настроек в соответствующей части реестра (под HKEY_USERS\IUSR-SID\Control Panel\International)

1 голос
/ 19 мая 2011

Конечно, вы можете переопределить это в событии Begin Request.

Но настоящая причина в том, что Windows не локализована на английский.Мы получаем американский английский: локализация ресурсов для en-GB не предусмотрена, поэтому этот параметр позволяет избежать множества неудачных поисков ресурсов en-GB, которые сразу возвращаются к en-US.

0 голосов
/ 19 мая 2011

Попробуйте проверить локаль, используемую на живом сервере.проверьте приведенную ниже ссылку для получения более подробной информации

http://www.java.com/en/download/help/locale.xml

Вам также может понадобиться проверить языковой приоритет, указанный в браузере.

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...