Назад | Перейти на главную страницу

Ошибка функции CDate в IIS 6.0, Windows server 2003

Мы запускаем веб-службы 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. Утилизируйте только пул приложений с проблемой.

Это не решит проблему, но уменьшит время простоя при восстановлении службы.