Веб-задания Azure не могут правильно прочитать csv - PullRequest
0 голосов
/ 20 февраля 2019

Я использую последнюю версию библиотеки CsvHelper, но Azure WebJob создает проблемы при чтении моего CSV-файла.

enter image description here

В нем указано, что формат DateTime недействителен,Хотя я на 101% уверен, что мой csv имеет правильный формат DateTime.

Я считаю, что CsvHelper вызывает проблему, но я не совсем знаю ..

Если требуется дополнительная информация, пожалуйста,дай мне знать.

1 Ответ

0 голосов
/ 28 февраля 2019

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

Прежде всего, проблема не связана с веб-заданием, поэтому сначала следует отладить его локально.

1, Создать простое консольное приложение для тестирования.

2, Загрузите исходный код библиотеки CsvHelper, добавьте исходный проект в том же решении в VS, а затем создайте ссылку на проект CsvHelper, как показано ниже:

enter image description here

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.Откройте этот файл и установите точку останова, как показано ниже: enter image description here

Последний метод, генерирующий исключение, - DateTime.Parse( text, formatProvider, dateTimeStyle ).Теперь запустите проект и проверьте, ожидается ли каждый параметр, особенно «текст».

Он предоставит вам больше информации для отладки.

...