У меня работает служба Windows (C#, .NET 2.0) на Windows Server 2003 R2. На одном сервере System.Threading.Thread.CurrentThread.CurrentCulture
является {en-AU} и в другом {en-US}. Это вызвало разницу при вызове ToString() объекта DateTime. Я хочу, чтобы культура была {en-AU}.Как процесс .NET получает информацию о культуре?
Я проверил «Региональные и языковые настройки». На обоих серверах на вкладке «Региональные параметры» отображается «English (Asutralia)». Но на вкладке «Дополнительно» отображается «Английский (США)» для одного и «Английский (Австралия)» для другого. Поэтому это должно вызывать разницу. Хотя я хочу знать, почему именно вкладка «Дополнительно» говорит «языковая версия программ, которые не хотят использовать Unicode, которые вы хотите использовать», я думал, что процессы .NET являются Unicode и не должны быть затронуты этим.
Как среда выполнения .NET определяет используемую культуру? Любая подробная ссылка будет полезна.
В этом случае служба (на самом деле хостинг-служба WCF) работает под определенной учетной записью пользователя службы. Но я установил ту же учетную запись для службы на другой машине для тестирования, и она вела себя правильно. Его только на машине, которая имеет «английский (США)» на расширенной вкладке, служба не ведет себя правильно. – softveda
Мне удалось войти в систему как учетная запись службы в машине, а формат «Английский (США)». Таким образом, профиль пользователя неверен. Это не связано с вкладкой «Дополнительно». Спасибо за указание на правильное направление. – softveda