来自Azure应用程序服务上托管的.NET WebAPI中的外部数据库驱动程序(1)出现意外错误

时间:2017-12-04 20:50:58

标签: c# .net azure asp.net-mvc-4 azure-web-app-service

我在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

我没有更改与此问题相关的任何代码。我认为问题来自微软方面,他们可能会运行一些安全更新。

我应该如何修复它。我需要帮助。

1 个答案:

答案 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