我正在使用最新版本的CsvHelper库,而Azure WebJob却在阅读我的csv文件时遇到麻烦。
它表示无效的DateTime格式。虽然我101%确定我的csv具有正确的DateTime格式。
我相信CsvHelper导致了这个问题,但我真的不知道..
如果需要更多信息,请告诉我。
对于这样的问题,如果我们没有可以重现问题的样本,则难以回答。所以在这里,我将与您分享一种有效的自行排除故障的方法。
首先,问题不是由Web作业引起的,因此您应该首先在本地调试它。
1,创建一个简单的控制台应用程序进行测试
2,下载CsvHelper库的源代码,在VS中的同一解决方案中添加源项目,然后引用CsvHelper项目如下:
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,根据堆栈跟踪,错误发生在Qazxswpoi方法中,该方法位于TypeConversion文件夹 - > DateTimeConverter.cs文件中。打开此文件并设置断点,如下所示:ConvertFromString
抛出异常的最后一个方法是。现在运行项目并检查是否需要每个参数,特别是“文本”。
它将为您提供更多信息进行调试。