где asp и iis 6.0 получают формат даты - PullRequest
3 голосов
/ 29 июля 2009

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

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

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

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

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

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

Ответы [ 6 ]

2 голосов
/ 30 июля 2009

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

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

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

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

1 голос
/ 27 февраля 2012

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

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

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

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

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

0 голосов
/ 31 октября 2015

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

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

0 голосов
/ 13 августа 2009

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

0 голосов
/ 30 июля 2009

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

Response.Write GetLocale

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

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

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

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

0 голосов
/ 30 июля 2009

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

<%=Session.LCID%>

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

...