Я недавно скопировал веб-приложение в новую установку Windows 7 и SQL Server 2008 R2. Приложение использует LINQ to SQL. Где-то вдоль линии разобрали строки даты POSTed облажались. Когда пользователь вводит строку даты, например 4/23/2011
, приложение отклоняет ее, выдавая ошибку The value '04/23/2011' is not valid for Due.
Due (фактически DueDate) - это поле DateTime в SQL Server.
Раньше это работало нормально. Я предположил, что это была проблема с настройками интернационализации ОС машины, поэтому я проверил, и форматы короткой и длинной даты установлены на MM/dd/yyyy
и dddd, MMMM dd,yyyy
соответственно, что для меня нормально. Язык базы данных SQL Server установлен на английский.
Частичный класс для этого свойства выглядит следующим образом:
[DisplayName("Due")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? DueDate { get; set; }
Должна быть другая настройка формата даты, которую мне нужно настроить. Где я должен искать?
Примечание: это может быть более правильным вопросом о сбое сервера, но я думаю, что разработчики гораздо чаще сталкиваются с этой проблемой, чем системные администраторы.
Дополнительная информация: SP_CONFIGURE 'default language'
Возвращает:
default language 0 9999 0 0
Также: языком по умолчанию для входа в базу данных, который я использую, является английский.