Изменение локали по умолчанию в IIS 6.0
У меня есть размещенный VPS, размещенный хостинговой компанией Великобритании, который по какой-то причине установлен в настройках США. Фактически, до недавнего времени региональные настройки были "англо - американскими". Я исправил региональные настройки, но мое приложение все еще работает с неправильным форматом даты. См.:
http://www.albaassoc.com/events/listevents.aspx
даты по умолчанию должны быть текущей датой до даты + 3 месяцев, но, как вы можете видеть, dd и поля MM меняются местами. Примечание: расширитель календаря AJAX вручную установлен в dd/MM/yyyy, поэтому календарь pop думает, что нас интересует июнь / июль, а не январь!
Я знаю, что есть различные способы установить страницу или приложение для использования определенной локали, но я бы предпочел глобальный подход.
можно ли повторно настроить IIS для работы в другом помещении, или если нет, я могу настроить машину.config так, что это только один раз перемены?
У меня открыт билет с хостом, но я не собираюсь задерживать дыхание - они не захотят переустановить IIS...
спасибо заранее.
5 ответов
через глобализация элемент, вы можете установить культуру и uiculture для сайта (через web.config) или вся машина (через машину.конфигурация.)
Я только что получил аналогичную проблему (Windows Server 2008, IIS 7). Я смог исправить это, отредактировав файл веб-конфигурации, но, как и вы, я хотел глобального исправления.
решение находится в панели конфигурации, региональные настройки. Я не знаю для вас (какая у вас ОС), но под WS2008 есть административная вкладка под региональными настройками. Это позволяет скопировать настройки вашего зарегистрированного пользователя (вас) в учетные записи администратора (сетевые службы в этом случае). Перезагрузился и получил его право.
проблема часто заключается в том, что пользователь, выполняющий IIS или пул приложений, к которому принадлежит ваше приложение, является системной учетной записью, которая была создана при установке сервера. Поэтому они унаследовали любой язык по умолчанию в то время.
Если вы не можете исправить это в региональных и языковых параметрах, вы всегда можете попробовать редактировать в реестре напрямую (с обычным условием, что возня с реестром может серьезно испортить Windows). Региональные настройки все в разделе HKEY_USERS\{userid}\Control Panel\International-если вы сравниваете то, что есть для каждого пользователя, с тем, что у вас есть в разделе HKEY_CURRENT_USER\Control Panel\International, должно быть довольно очевидно, что изменить. Я сделал это несколько раз на серверах Windows 2000 и он работал хорошо.
другой вариант - просто создать нового пользователя на компьютере с правильной локалью, а затем установить IIS и пул приложений для запуска с этим идентификатором.
У меня была проблема с форматированием даты mm/dd/yyyy, когда я хотел, чтобы она была dd/mm/yyyy. Я использую windows server 2003 и IIS 6
решение состояло в том, чтобы добавить следующее в любой файл веб-конфигурации, а затем перезагрузить сервер, и он должен работать нормально.
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" />
немного старой темы, но я все еще смотрю на некоторые классические сайты ASP, написанные ныне несуществующей цивилизацией ацтеков в честь их пернатых богов.
перемещение сервера предотвратило работу всего кода даты и принесение в жертву курицы не помогло, поэтому вот очень простое решение в IIS 7, которое не упоминалось, возможно, потому, что никто другой не страдает, как я.
- перейдите в Диспетчер IIS.
- выберите узел корневого сервера для применитесь ко всем сайтам или выберите узел сайта, с которым возникли проблемы, если вы хотите оставить сервер по умолчанию в покое.
- в разделе IIS дважды щелкните значок ASP.
- установить Локаль на нужную локаль (2057 для Великобритании).
Это должно вступить в силу немедленно.
в качестве альтернативы вы можете купить DeLorean, вернуться назад во времени и убить программиста, который решил FormateDateTime(d, vbLongDate)
был лучшим способом создания даты для использования в базе данных. Или убеждать клиента дать мне много денег, чтобы заменить все это. Либо хорошо.