带有 Linq To CSV 的 Azure webjob 在生产中不起作用
Azure webjob with Linq To CSV doesn't work in production
我们正在导入一个包含大约 80.000 行的 .csv 文件。我们想在网络作业上进行,因为将来会重复进行。我们正在使用 LinqToCsv 读取 .csv 并处理信息。当 运行 在我们的控制台应用程序本地时,一切似乎都运行良好。但是一旦我们部署到实际的 Azure WebJob,我们就会从 LinqToCsv 得到一个异常。
There were 1 or more exceptions while reading data using type "xxxx". Reading file "xxx.csv".
它似乎无法正确解析文件中的某些行,但它确实可以在本地运行。将 .CSV 文件缩短为 10 行时,一切似乎也适用于生产环境。所以我假设实际的 LinqToCSV class 设置没有问题。这些是顺便说一句的设置:
CsvFileDescription inputFileDescription = new CsvFileDescription
{
SeparatorChar = ';',
FirstLineHasColumnNames = true,
IgnoreUnknownColumns = true,
EnforceCsvColumnAttribute = true
};
有人可以解释这种奇怪的行为,以及如何在不逐行测试 .CSV 的情况下解决它吗?
问题是全球化。在本地,我的小数点是逗号分隔的,生产是点分隔的。将以下内容添加到 CsvFileDescription 解决了我的问题:
FileCultureName = "nl"
我们正在导入一个包含大约 80.000 行的 .csv 文件。我们想在网络作业上进行,因为将来会重复进行。我们正在使用 LinqToCsv 读取 .csv 并处理信息。当 运行 在我们的控制台应用程序本地时,一切似乎都运行良好。但是一旦我们部署到实际的 Azure WebJob,我们就会从 LinqToCsv 得到一个异常。
There were 1 or more exceptions while reading data using type "xxxx". Reading file "xxx.csv".
它似乎无法正确解析文件中的某些行,但它确实可以在本地运行。将 .CSV 文件缩短为 10 行时,一切似乎也适用于生产环境。所以我假设实际的 LinqToCSV class 设置没有问题。这些是顺便说一句的设置:
CsvFileDescription inputFileDescription = new CsvFileDescription
{
SeparatorChar = ';',
FirstLineHasColumnNames = true,
IgnoreUnknownColumns = true,
EnforceCsvColumnAttribute = true
};
有人可以解释这种奇怪的行为,以及如何在不逐行测试 .CSV 的情况下解决它吗?
问题是全球化。在本地,我的小数点是逗号分隔的,生产是点分隔的。将以下内容添加到 CsvFileDescription 解决了我的问题:
FileCultureName = "nl"