
У меня есть клиент в США, который хочет, чтобы все время отображалось как военное время, но все остальное должно соответствовать культуре США.
В моем файле global.asax я создаю копию культуры США и применяю отображение времени Великобритании для создания культуры США с военным временем.
Причина, по которой я это делаю, заключается в том, что я не смог найти культуру, способную на это, однако, если кто-то знает, было бы здорово.
Проблема, с которой я столкнулся, заключается в том, что когда мы развертываем веб-сайт на IIS (версия 6), все, по-видимому, возвращается к культуре США.
В поисках способа изменения культуры я нашел настройку на вкладке ASP.NET -> Изменить конфигурацию -> Вкладка Приложение.
Значение по умолчанию — af-ZA.
Похоже, что возможности отключить это преобладание культуры нет, и я не верю, что af-ZA прав?
Есть ли способ запретить IIS переопределять культуру, программно установленную в ASP.NET?
Примечание: спрашиваю здесь, так как ищу решение на стороне сервера, а не программирование. Спасибо!
решение1
Это, по крайней мере, частично вопрос кодирования. По сути, вам нужно создать и зарегистрировать новую культуру, используя класс CultureAndRegionInfoBuilder из System.Globalization.
После регистрации вы сможете выбрать новую культуру в настройках приложения ASP.Net (или в файле web.config для вашего приложения).
Вот несколько ссылок, с которых вам следует начать:
http://msdn.microsoft.com/en-us/library/ms172469.aspx
http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx
решение2
Нашел ответ на свой вопрос после разговора с кем-то более сведущим в серверах и asp.net.
По-видимому, в файле Web.config можно задать только культуру для всего приложения.
Я устанавливал его в главном потоке приложения в global.asax, который не переносился в дочерние потоки, обрабатывающие запросы страниц.
Интересно, что при запуске на локальной машине через процесс хостинга Visual Studio все запросы должны выполняться через один и тот же поток.
Это навело меня на мысль, что проблема связана с IIS, поскольку проблема не проявлялась до тех пор, пока мы не установили его на IIS.
Мое решение: (Принял более правильное решение)
Пользовательская культура должна быть установлена в каждом потоке запроса страницы. Моим решением было поместить ее в загрузку главной страницы. IIS не переопределяет ваши настройки.