Преобразование из строки «31.03.2012» в тип «Дата» недопустимо - PullRequest
2 голосов
/ 30 октября 2011

Мое веб-приложение отлично работает в редакторе asp vb.net.Но когда я запускаю свое веб-приложение через IIS7, я получаю эту ошибку.Чего мне не хватает при настройке IIS7?Есть кто-нибудь, кто может что-то предложить?

Заранее спасибо

Ответы [ 3 ]

7 голосов
/ 30 октября 2011

Поскольку ваш IIS7 настроен для английского языка, и эта дата, вероятно, итальянская или что-то подобное.Вы должны будете сообщить Date.Parse, какую культуру использовать.

Что-то вроде

dateValue = Date.Parse(yourDate, CultureInfo.CreateSpecificCulture("it-IT"))

Или вы можете изменить культуру в своем IIS7

Здесьэто инструкции

, например, если вы используете пользовательский интерфейс

Использование пользовательского интерфейса Откройте диспетчер IIS и перейдите на уровень, которым вы хотите управлять. (пропущено)

В представлении функций дважды щелкните .NET Globalization.

На странице .NET Globalization в окне свойств щелкните, чтобы выбрать глобальный параметр.Вы хотите отредактировать и выберите значение в раскрывающемся списке.

На панели «Действия» нажмите «Применить».

Или вы можете установить культуру своего приложения вweb.config

<system.web>
    <globalization culture="it-IT" uiCulture="it-IT"/>
</system.web>
4 голосов
/ 30 октября 2011

Если вы уверены, что дата всегда соответствует именно этому формату, вы можете использовать вместо нее ParseExact:

var date = DateTime.ParseExact(
               "31/03/2012",
               "dd/MM/yyyy",
               System.Globalization.CultureInfo.InvariantCulture);
1 голос
/ 31 октября 2011

Вы также можете использовать функцию CDate для разбора даты.

Dim dDate As Date = CDate("31/03/2012")

Преимущество использования этой функции перед функциями синтаксического анализа DateTime заключается в том, что вы можете передать ей любой приемлемый формат строки даты, и он преобразует ее. Он выдаст ошибку, если не сможет разобрать дату.

...