где asp и iis 6.0 получают формат даты

Я нашел немного рассола с новым веб-сервером. У нас есть новый веб-сервер, который отображает даты иначе, чем наши старые веб-серверы.

Мы запускаем классические веб-страницы asp на IIS 6.0 с Windows Server 2003.

Мы вошли в систему как администратор и установили соответствующие региональные настройки, а затем применили настройки к текущему пользователю и профилю пользователя по умолчанию.

Затем мы вошли в реестр и обновили соответствующие форматы в HKEY_USERS / .default / control panel / international.

Обновите конфигурацию asp.net для наших веб-сайтов, указав правильную кодовую страницу и локаль.

Есть ли у кого-нибудь другие места, откуда приложение могло бы получать форматы даты?


person yamspog    schedule 29.07.2009    source источник


Ответы (6)


Я знаю, что это неправильный способ решить проблему. Однако приложение было написано много лет назад, получить что-то с помощью управления планированием / изменениями было бы непросто, и это единственное приложение, работающее на сервере. Таким образом, можно настроить сервер для обслуживания этого единственного приложения. Кроме того, меня сводило с ума то, что новый сервер, который должен быть настроен идентично старому, не работал.

Оказывается, помимо HKEY_USERS/*/Control Panel/international есть настройка для не-юникодовых программ. Его можно найти в HKLM/system/currentcontrolset/control/nls/language/Default. Установите правильную кодовую страницу, и она будет золотой.

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

Вы можете настроить форматы с помощью кнопки «customize». Вы можете изменить «язык для программ, отличных от Unicode» на вкладке «Дополнительно». Просто убедитесь, что вы отметили «Применить к профилю по умолчанию» внизу расширенной вкладки.

person yamspog    schedule 29.07.2009

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

Мне пришлось использовать regedit, чтобы изменить все настройки интернационализации HKU \ S-1-5-19 \ Control Panel \ International (NT Authority) и HKU \ S-1-5-20 \ Control Panel \ International (Network Service) на соответствуют настройкам, которые уже были в HKU \ S-1-5-18 \ Control Panel \ International (Local System).

Это сработало отлично.

Я вручную изменил все настройки, которые были отличными.

Я думаю, мне действительно нужно было изменить настройки для S-1-5-20 (Network Service).

person MikeBeaton    schedule 27.02.2012

Перейдите в Панель управления -> Язык и региональные стандарты, установите все необходимые параметры, затем на вкладке «Дополнительно» выберите настройки для программ, не поддерживающих Юникод, и отметьте «Применить все настройки к текущей учетной записи и к профилю пользователя по умолчанию». Нажмите ОК и перезапустите сервер.

В Windows Server 2008 у администраторов есть дополнительная вкладка «Администрирование». Там нажмите «Копировать в зарезервированные счета».

person Vedran    schedule 31.10.2015

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

<%=Session.LCID%>

Если идентификаторы языкового стандарта отличаются и вы не можете изменить его на новом сервере, вы можете добавить строку в подпрограмму Session_OnStart в global.asa для приложения, которое назначает правильный идентификатор языкового стандарта для Session.LCID.

person MyItchyChin    schedule 29.07.2009

Использование страницы ASP с содержимым: -

Response.Write GetLocale

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

Я видел подобные проблемы в смутном и далеком прошлом при использовании интегрированной безопасности. ASP кэширует региональные данные из пользовательского куста a, когда ему сначала нужно их использовать, а затем продолжает использовать эти параметры до тех пор, пока процесс не завершится. ASP получает эти параметры из пользовательского куста, связанного с идентификатором пользователя, под которым в настоящее время выполняется код. В большинстве случаев это будет ПО УМОЛЧАНИЮ, потому что у пользователя нет профиля в системе.

Однако, если пользователь вошел в систему в интерактивном режиме на сервере, у него будет профиль, и поэтому будут использоваться его настройки. Следовательно, я видел ситуации, когда у сервера периодически возникали проблемы с региональными настройками.

Я не могу вспомнить, видел ли я это на IIS6, я определенно видел это на IIS5.

person AnthonyWJones    schedule 29.07.2009

Если вы запускаете приложение ASP под другой учетной записью (не IUSR_Guest), войдите в систему под этой учетной записью, установите желаемый формат даты / времени и перезапустите IIS.

person DmitryK    schedule 13.08.2009