Для такой проблемы нам будет трудно ответить, если у нас нет образца, который может воспроизвести проблему.Поэтому здесь я просто поделюсь с вами эффективным способом устранения неполадок самостоятельно.
Прежде всего, проблема не связана с веб-заданием, поэтому сначала следует отладить его локально.
1, Создать простое консольное приложение для тестирования.
2, Загрузите исходный код библиотеки CsvHelper, добавьте исходный проект в том же решении в VS, а затем создайте ссылку на проект CsvHelper, как показано ниже:
3, в вашем тестовом приложении введите код с той же функциональностью, которую вы используете в веб-задании.Ниже то, что я использую для демонстрации.Класс Foo содержит свойство DateTime:
class Program
{
static void Main(string[] args)
{
using (var reader = new StreamReader(@"C:\Users\toml\Desktop\test.csv"))
using (var csv = new CsvReader(reader))
{
csv.Configuration.BadDataFound = null;
var records = csv.GetRecords<Foo>();
foreach (var item in records)
{
Console.WriteLine(item.Time);
}
}
Console.ReadKey();
}
}
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Time { get; set; }
}
4. Согласно трассировке стека, ошибка возникает в методе ConvertFromString
, который находится в папке TypeConversion -> DateTimeConverter.cs.Откройте этот файл и установите точку останова, как показано ниже:
Последний метод, генерирующий исключение, - DateTime.Parse( text, formatProvider, dateTimeStyle )
.Теперь запустите проект и проверьте, ожидается ли каждый параметр, особенно «текст».
Он предоставит вам больше информации для отладки.