1

在窗口服务器 2008 R2 上上传我的 asp.net 应用程序后出现以下错误

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

我已经使用下面的 oleDbConnection 类来读取 excel 文件

OleDbConnection excelConn = null;

            try
            {
                if (System.IO.Path.GetExtension(fileName) == ".xlsx")
                {

                    excelConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
                }
                else
                {
                    excelConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
                }

                excelConn.Open();
                DataTable dt = new DataTable();

                dt = excelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

搜索谷歌后,我发现我需要安装2007 Office System 驱动程序 ,所以我也尝试过,但是我得到了同样的错误。

4

3 回答 3

3

昨天,我遇到了同样的问题。

按照以下步骤解决了我的问题:-

  1. 安装了这个 64 位驱动程序Microsoft Access Database Engine 2010 Redistributable
  2. 在应用程序池 --> 属性上,设置Enable 32 bitTrue和使用Classic池。
  3. 改为Provider=Microsoft.Jet.OLEDB.4.0Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=No;IMEX=1'
  4. target platform通过设置为来构建您的项目Any CPU
于 2012-11-02T11:34:26.487 回答
3

我从@siva 那里得到了解决方案,非常感谢他救了我的命。

但是我想在下面分享屏幕截图,以便其他人可以看到需要更改该设置的位置

无论您为应用程序使用了什么应用程序池,从 IIS 的应用程序池中选择它,然后右键单击它并打开高级设置

在此处输入图像描述

并按照@siva 在他的回答中提到的步骤

于 2012-11-02T12:53:14.720 回答
0

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

Amphis Customer 设计用于运行 Windows XP、Windows Vista、Windows 7 或 Windows 8 Pro 的 32 位或 64 位 PC,但在 Windows XP 64 位(以及可能的其他操作系统)上,某些 Microsoft OLEDB DLL 可能具有未注册。

解决方案 1 :p

解决方案是手动注册这些 DLL。

转到开始->运行并键入 cmd 这将启动命令提示符(也可从开始->程序->附件->命令提示符获得)

键入 cd .. 并按回车 键入 cd .. 并再次按回车(继续执行此操作直到提示显示 :> )

现在你需要去一个特殊的文件夹,它可能是 c:\windows\system32 或者它可能是 c:\winnt\system32 或者它可能是 c:\windows\sysWOW64 尝试输入其中的每一个,例如 cd c:\windows\ sysWOW64(如果它说系统找不到指定的路径,请尝试下一个) cd c:\windows\system32 cd c:\winnt\system32 当其中一个不会导致错误时,停止,您已经找到正确的文件夹。

现在您需要通过键入这些命令并在每个命令后按回车来注册 OLE DB 4.0 DLL

regsvr32 Msjetoledb40.dll regsvr32 Msjet40.dll regsvr32 Mswstr10.dll regsvr32 Msjter40.dll regsvr32 Msjint40.dll

解决方案 2 :p

只需右键单击项目 -> 属性 -> 构建 -> 从目标任何 cpu 更改为目标 x86

-> f5,它会工作*

于 2013-01-23T16:10:18.983 回答