gpt4 book ai didi

azure - Azure 云服务上的 Microsoft.Jet.OLEDB.4.0 错误

转载 作者:行者123 更新时间:2023-12-04 04:47:20 26 4
gpt4 key购买 nike

我的要求是将excel文件上传到网站根目录的文件夹中,然后将该文件的数据读取到数据表中。

这在我现有的托管提供商上运行良好。但现在我已经将我的网站上传到 Windows Azure 云服务上。移植到 Azure 云服务后,我在“Microsoft.Jet.OLEDB.4.0”提供程序上收到错误。

我使用“Microsoft.Jet.OLEDB.4.0”提供程序从 Excel 文件读取数据并将数据添加到数据表。它在本地也运行良好,但是当我在 azure 云服务上托管我的 Web 应用程序时,它会生成以下错误

“Microsoft.Jet.OLEDB.4.0 提供程序未在本地计算机上注册”

请看一下某行代码:

string strpath = Server.MapPath(OAppPath);
strpath = strpath + "\\MYDATAFOLDER\\" + System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);

FileUpload1.PostedFile.SaveAs(strpath);

string excelConnectionString = "";
excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strpath +
";Extended Properties=\"Excel 8.0;;IMEX=1;HDR=yes\"";
var connection = new OleDbConnection(excelConnectionString);
connection.Open();
var dtSheets = new DataTable();
dtSheets = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
GC.Collect();
GC.WaitForPendingFinalizers();

这个问题的替代解决方案是什么?

我也看了以下内容:

Link 1 Link 2

谢谢卡 PIL

最佳答案

这可能是因为您的应用程序在 64 位模式下运行而导致的。根据微软的说法,The Microsoft OLE DB Provider for Jet and the Microsoft Access ODBC driver are available in 32-bit versions only .

How to get a x64 version of Jet? 中所述:

The Microsoft Jet Database Engine 4.0 components entered a state of functional deprecation and sustained engineering, and have not received feature level enhancements since becoming a part of Microsoft Windows in Windows 2000.

一种替代方法是使用 startup task在您的云服务中部署 Microsoft Access Database Engine 2010 Redistributable 。您必须将连接字符串更改为该新驱动程序支持的格式。

我成功使用的另一种方法是使用诸如ExcelDataReader之类的库。读取电子表格数据。

关于azure - Azure 云服务上的 Microsoft.Jet.OLEDB.4.0 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17987080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com