Приложение ASP.NET не отражает региональные настройки

Я установил в своих региональных настройках (для чешского языка, культура cs-CZ) схему короткого времени / долгого времени следующим образом:

  • Короткое время: мм
  • Долгое время: H.mm.ss

настройки

Я пытаюсь использовать эти настройки в приложениях C#. В следующем консольном приложении все работает:

используя Систему; используя System.Globalization;

class Program
{
    static void Main()
    {

        Console.WriteLine(CultureInfo.CurrentCulture.Name);
        Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);

        Console.ReadLine();
    }
}

Вывод, как я думал, следующий:

cs-CZ
H.mm.ss

Я создал приложение ASP.NET, которое, к моему удивлению, не отражает это.

Минимальный пример:

<%@ Page Language="C#" %>

<%= System.Globalization.CultureInfo.CurrentCulture.Name %><br />
<%= System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern %>

Выход:

cs-CZ
H:mm:ss

Я пытался перезагрузить, .NET2.0, .NET4.0, по-прежнему безрезультатно.

Примечание. Эта проблема возникла как часть ошибки, когда мы забыли включить InvariantCulture для DateTime.ToString(), которая затем должна быть проанализирована десериализатором JSON. (У парня с этой проблемой несколько другой разделитель формата времени).

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

1 ответ

Решение

Проблема в том, что региональные настройки зависят от пользователя. Вы изменили их для себя, но сайт работает от имени другого пользователя (см. Пул приложений в IIS)

Другие вопросы по тегам