Azure Web作业无法正确读取csv

时间:2019-02-20 20:03:32

标签: azure csv web-applications azure-webjobs csvhelper

我正在使用最新版本的CsvHelper库,但是Azure WebJob却在读取我的csv文件时遇到了麻烦。

enter image description here

它表示无效的DateTime格式。尽管我有101%的信心,我的csv具有正确的DateTime格式。

我相信CsvHelper会导致此问题,但我真的不知道。

如果需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

对于这样的问题,如果我们没有可以重现该问题的样本,那么我们很难回答。因此,在这里,我将仅向您分享一种自行解决问题的有效方法。

首先,该问题不是由Web作业引起的,因此您应该首先在本地对其进行调试。

1,创建一个简单的控制台应用程序进行测试。

2,下载CsvHelper库的源代码,在VS中的相同解决方案中添加源项目,然后引用CsvHelper项目,如下所示:

enter image description here

3,在测试应用程序中,输入一些具有与Web作业相同功能的代码。以下是我用于演示的内容。 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,根据堆栈跟踪,该错误发生在TypeConversion文件夹-> DateTimeConverter.cs文件中的ConvertFromString方法上。 打开此文件并设置断点,如下所示: enter image description here

引发异常的最后一个方法是DateTime.Parse( text, formatProvider, dateTimeStyle )。 现在,运行项目并检查每个参数,尤其是“文本”是否正确。

它将为您提供更多调试信息。