Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение

С помощью элемента глобализации вы можете установить культуру и uiculture для сайта (через web.config) или всей машины (через machine.config).

Другие советы

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

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

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

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

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

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

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

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

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

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

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

    <globalization requestEncoding="utf-8" responseEncoding="utf-8"  culture="en-GB" />
    
    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top