未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序,引发一系列问题
今天在本地测试处理程序还是很顺利的旧完成了,但是一到服务器上就蔫了,在服务器上调试运行比我在本地写代码测试的时间还长。
根据"未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序"
这个时候就要查看自己是否安装了驱动程序,x86下载32位,x64下载64位,当然64位服务器也可以安装32位驱动(我就是64服务安装32位驱动),32为服务器装64驱动没有试过。
下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255
安装完成后再次运行,还是报障相同的问题,这个时候就要看看自己编译的程序是x86、x64、AnyCPU。
驱动安装完成运行程序出现下面的问题↓
根据"外部表不是预期的格式错误"
这块最让我抓狂的地方,要炸了都。调试了半天程序,然而问题并不在程序,而是所读取文档的问题
Microsoft.ACE.OLEDB.12.0 链接是用来读取 Excel2007 文档,那么这个文档时以什么后缀结尾的呢?
当然是 .xlsx 结尾,那为什么本地在测试的时候 .xls & .xlsx 都能读取,这块就不得而知了(还是服务器比较严格)
所以这里在读取文件的时候要使用 .xlsx 结尾的文档
Microsoft.Jet.OLEDB.4.0 链接是用来读取 Excel2003 文档 以 .xls结尾。
文档后缀问题解决后又出现下面的问题↓
如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
这个问题比较好解决,就是你编译的程序 Oracle客户端 → 驱动 → 处理程序 使用的版本要一致
32位 统一使用 32位Oracle客户端 → 安装32驱动 → 编译32位处理程序,反之就都是64位。
这样所有问题就都解决了,记录此文章以便后续再次遇到该问题
浙公网安备 33010602011771号