我在Azure App Services中托管了一个.NET C#web api应用程序。这个api从blob存储中读取.xls文件并将其存储在sql数据库中。我正在使用以下连接字符串连接到.xls文件。
var connString =“Provider = Microsoft.Jet.OLEDB.4.0; Data Source =”+ fpath +“; Extended Properties = \”Excel 8.0; HDR = YES; IMEX = 1; Importmixedtypes = text; typeguessrows = 0; \ “”;
上周一切正常,但现在我遇到了错误
来自外部数据库驱动程序的错误(1)
我还尝试在连接字符串中将提供程序从Microsoft.Jet.OLEDB.4.0更改为Microsoft.ACE.OLEDB.12.0,但我发现Azure App Services不支持它。 MSDN link
我没有更改与此问题相关的任何代码。我认为问题来自微软方面,他们可能会运行一些安全更新。
我应该如何修复它。我需要帮助。
答案 0 :(得分:0)
根据此blog,它似乎是由操作系统更新引起的。如果您是Azure WebApp的主机,请尝试连接 Azure支持。由于WebApp是Sandbox,我们无权更改注册表或为其安装Microsoft.ACE.OLEDB.12.0。
10月更新后,JET提供程序无法再连接。此更新(2017年10月10日发布)包含一个无意中影响JET提供程序的安全更新版本。更新版本为kb4041678,包含在补丁kb4041681
中
我还创建了一个新的Azure WebApp来使用Microsoft.Jet.OLEDB.4.0来读取xls文件,它在Azure网站上也不起作用。
如果可以接受在Azure WebApp中读取.xls的其他方法,则可以使用OpenXml SDK。如何使用OpenXml SDK,您可以参考此document。