Изменить язык по умолчанию в IIS 6.0 - PullRequest
7 голосов
/ 06 января 2009

У меня есть хостинг VPS, организованный британской хостинговой компанией, который по некоторым причинам настроен на настройки США. Фактически, до недавнего времени региональные настройки были «английский - США». Я исправил региональные настройки, но мое приложение все еще работает с неправильным форматом даты. См:

http://www.albaassoc.com/events/listevents.aspx

Предполагается, что датами по умолчанию будут текущая дата до даты + 3 месяца, но, как вы можете видеть, поля dd и MM меняются местами. Примечание. Расширитель календаря AJAX вручную установлен на dd / MM / yyyy, поэтому в календаре нас интересует июнь / июль, а не январь!

Я знаю, что существуют разные способы настроить страницу или приложение для использования определенной локали, но я бы предпочел использовать глобальный подход.

Можно ли переконфигурировать IIS для работы в другой локали, или если нет, могу ли я настроить machine.config так, чтобы это было разовое изменение?

У меня есть открытый билет с хостом, но я не собираюсь задерживать дыхание - они не собираются переустанавливать IIS ...

Заранее спасибо.

Ответы [ 5 ]

6 голосов
/ 06 января 2009

Посредством элемента globalization вы можете установить культуру и культура для сайта (через web.config) или для всего компьютера (через machine.config).

5 голосов
/ 13 февраля 2009

Я только что получил похожую проблему (Windows Server 2008, IIS 7). Я смог исправить это, отредактировав файл веб-конфигурации, но, как и вы, я хотел глобальное исправление.

Решение в конфиге панели региональных настроек. Я не знаю для вас (какая у вас ОС), но под WS2008 есть административная вкладка под региональными настройками. Позволяет скопировать настройки вашего вошедшего в систему пользователя (вас) в административные учетные записи (в данном случае, в сетевые службы). Перезагрузился и понял все правильно.

4 голосов
/ 17 июня 2009

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

Если вы не можете исправить это в региональных и языковых настройках, вы всегда можете попробовать редактирование в реестре напрямую (с обычной оговоркой, что возиться с реестром может серьезно испортить Windows). Все региональные настройки находятся в HKEY_USERS \ {userid} \ Control Panel \ International - если вы сравниваете, что там для каждого пользователя, с тем, что есть в HKEY_CURRENT_USER \ Control Panel \ International, должно быть довольно очевидно, что изменить. Я делал это несколько раз на серверах Windows 2000, и это работало нормально.

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

1 голос
/ 28 февраля 2014

Немного по-старому, но я все еще смотрю на некоторые классические сайты ASP, написанные ныне несуществующей ацтекской цивилизацией, в честь своих пернатых богов.

Перемещение сервера препятствовало работе всего кода даты, и жертва курицы была бесполезна, поэтому здесь очень простое решение в IIS 7, которое не было упомянуто, возможно, потому что никто больше не страдает, как я.

  1. Перейти к диспетчеру IIS.
  2. Выберите узел корневого сервера, который будет применяться ко всем сайтам, или выберите узел сайта, с которым у вас возникли проблемы, если вы хотите оставить сервер по умолчанию в покое.
  3. В разделе IIS дважды щелкните значок ASP.
  4. Установите идентификатор локали на желаемую локаль (2057 для Великобритании).

Это должно вступить в силу немедленно.

В качестве альтернативы вы можете пойти купить DeLorean, вернуться в прошлое и убить программиста, который решил, что FormateDateTime(d, vbLongDate) является лучшим способом создания даты для использования в базе данных. Или убедить клиента дать мне много денег, чтобы заменить все это. Либо хорошо.

1 голос
/ 22 ноября 2010

У меня была проблема с датой в формате мм / дд / гггг, когда я хотел, чтобы она была дд / мм / гггг. Я использую Windows Server 2003 и IIS 6

Решением было добавить следующее в любой файл веб-конфигурации, затем перезагрузить сервер, и он должен работать нормально.

<globalization requestEncoding="utf-8" responseEncoding="utf-8"  culture="en-GB" />
...