#azure #timezone #azure-web-app-service
Вопрос:
В наших веб-приложениях Azure на базе Windows у нас возникла странная проблема: не работала настройка часового пояса. Он был установлен на W. Europe Standard Time
, но веб — приложения все еще использовали UTC в то время. При проверке часового пояса с помощью tzutil /g
команды в консоли мы получили UTC_dstoff
в результате. У нас также были веб-приложения, которые функционировали правильно, но они имели точно такое же значение настройки и выдавали W. Europe Standard Time
результат выполнения tzutil /g
команды.
Комментарии:
1. Если возможно, подумайте о том, чтобы не использовать этот параметр, а вместо этого измените код приложения, чтобы иметь дело с внутренними часовыми поясами. Например, в .NET вместо вызова
DateTime.Now
используйтеTimeZoneInfo.ConvertTime
withDateTime.UtcNow
.2. Хорошая мысль. Однако рефакторинг кода или просто правильная настройка-это две разные вещи. Кроме того, потому что у нас есть экземпляры клиентов с разными часовыми поясами. Но рефакторинг в будущем будет отложен!
Ответ №1:
После нескольких часов поиска мы решили сравнить шестнадцатеричные значения строк между функционирующими веб-приложениями и теми, у которых нет правильного часового пояса. Как оказалось, значение настройки часового пояса веб-приложений с UTC_dstoff
часовым поясом не имело пробелов вместо обычных пробелов! Поэтому, если у вас когда-нибудь возникнет эта проблема, пожалуйста, проверьте шестнадцатеричные значения пробелов, которые вы использовали, например, с кодом Visual Studio и плагином hexdumper. Может быть, это сэкономит вам 4 часа, которые нам потребовались, чтобы разобраться в этом.
Комментарии:
1. Просто для ясности, вы хотите сказать, что у вас были неразрывные пробелы между словами в идентификаторе часового пояса, который вы установили в настройках
WEBSITE_TIME_ZONE
приложения? Если да, то как они туда попали? Вы копировали/вставляли откуда-то, где они были?2. Мы не уверены, как это произошло, но копирование/вставка здесь действительно является главным подозреваемым.