Мы запускаем веб-службы ASMX .NET 2.0 на сервере Windows 2003 на IIS 6.0. Мы перенесли устаревшее приложение VB 6.0 в приложение .NET 2.0 с помощью VB.NET. Функция CDATE используется во многих местах, и мы не заменяли ее функциями, эквивалентными .NET.
После миграции код много лет работал нормально.
В последнее время, мы начали сталкиваться с проблемами на наших производственных серверах, когда следующий код не работает:
CDATE ("11 июля 2011 г. 21:10:27")
Ошибка: преобразование строки «11 июля 2011 21:10:27» в тип «Дата» недопустимо.
Если мы выполним iisreset, тот же код начнет работать нормально.
Может ли это быть из-за недавнего патча для Windows server / .NET? Пожалуйста, помогите нам решить эту проблему.
Я могу ошибаться, но подозреваю, что это работает для ОДНИХ свиданий, а не для других.
Чтобы распознать и обработать дату, функция CDate извлекает идеальный формат даты из региональных настроек системы. Проверьте региональные настройки на сервере и убедитесь, что ваш формат ввода соответствует формату системной даты.
В идеале исправить это программно, получив формат datetime из интерфейса IFormatProvider: http://msdn.microsoft.com/en-us/library/9xk1h71t.aspx
Общий совет: не используйте IISReset. Утилизируйте только пул приложений с проблемой.
Это не решит проблему, но уменьшит время простоя при восстановлении службы.