2009-03-16 3 views
2

Я пытаюсь перенести старое классическое приложение asp в IIS 7.0 с win2k8, и я определенно не хочу менять старый код, если могу помочь Это.Сколько разных мест у вас есть, чтобы установить формат даты в IIS 7.0 и win2k8

Я установил формат даты в разделе «Настроить региональные параметры» в форматах «Дата» в региональных и языковых настройках панели управления на dd-MMM-yy.

Я все еще получаю Conversion_failed_when_converting_datetime_from_character_string ошибки, используя этот формат даты даже после перезагрузки.

Я использую также с помощью SQL Server Express 2005

Где еще вам нужно установить формат даты? Должны ли все они быть взяты из машины?

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

старый код эффективно делает это "Insert Into MyTable (ThisDate) значения ('" & Now() & "')"

Формирует Insert Into MYTABLE (ThisDate) значения ('17/03/2009 3:40:48 pm ')

Msg 241, Level 16, State 1, Line 1 Ошибка преобразования при преобразовании даты и времени из символьной строки.

Что это ЗАПРЕЩАЕТСЯ жаловаться на "п.м." часть строки dispite Настройки региона на машине, указывающие, что НЕ использовать это.

+0

Вы также можете проверить этот ответ. https://stackoverflow.com/questions/11237765/datetime-format-issue-in-iis-7-server/11238540#11238540 –

ответ

1

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

Что такое "Conversion_failed_when_converting_datetime_from_character_string"? VBScript? Возможно, он не обращает внимания на региональные настройки.

+0

Дальнейшие исследования показывают, что они поступают из БД. Если я запускаю его отдельно от IIS, в VB Script и вставляю его в окно db, он работает. Кажется, что-то форматирование Now() в VBScript странно. – GordyII

+0

Похоже, что IIS использует настройки для пользователя IUSR. Поскольку войти в систему как этот пользователь, изменить настройки региона практически невозможно. – GordyII

1

Все, что вам нужно сделать, это изменить настройку культуры в разделе .Net Globalization в вашей стране, и это должно исправить ее.

+0

+1. Веб-сайты обычно читают настройки культуры из информации, которую браузер пользователя отправляет с запросом. Однако само приложение может переопределить и установить настройки культуры явно. – NotMe

4

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

Обычно эта проблема возникает, когда сервер установлен в США, а затем пользователь устанавливает местоположение в Великобританию. Затем, когда код выполняется, он возвращает 1/17/2012 вместо 17/1/2012, и да SQL Server может возвращать такие ошибки, как «Conversion_failed_when_converting_datetime_from_character_string».

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

Откройте параметры «Регион» и «Язык» на панели управления. Вы должны увидеть вкладку «Администратор», нажмите «Параметры копирования». Убедитесь, что параметры, указанные в разделе «Текущий пользователь», - это те, которые вы хотите реплицировать, если они не возвращаются на раскладку клавиатуры и т. Д. И устанавливают их. Отметьте поле «Экран приветствия и системные учетные записи», а затем ОК. Перезагружать.

Теперь это должно сработать.