.net 我们可以添加';Microsoft.ACE.Oledb.12.0.dll';投射

.net 我们可以添加';Microsoft.ACE.Oledb.12.0.dll';投射,.net,database,oledb,oledbconnection,.net,Database,Oledb,Oledbconnection,我在测试服务器上收到错误“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。”。所以我的问题是: i) 我是否可以添加对“'Microsoft.ACE.Oledb.12.0.dll'”的引用以自行投影它? ii)安全吗? iii)如何做到这一点 自从我在本地机器上安装了最新版本的office以来,一切都在正常工作。一旦我将代码部署到测试服务器上,我就会发现上面的错误。我可能无法在测试服务器上安装Office(由于某些原因)。那个么,是否有可能将所有必需的dll放在项

我在测试服务器上收到错误“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。”。所以我的问题是:

i) 我是否可以添加对“'Microsoft.ACE.Oledb.12.0.dll'”的引用以自行投影它? ii)安全吗? iii)如何做到这一点

自从我在本地机器上安装了最新版本的office以来,一切都在正常工作。一旦我将代码部署到测试服务器上,我就会发现上面的错误。我可能无法在测试服务器上安装Office(由于某些原因)。那个么,是否有可能将所有必需的dll放在项目本身中,并将其部署到测试服务器上呢


提前感谢。

要使用此库,您需要在计算机上安装Office。如果有一个,您可以简单地以典型的方式添加lib。

如果您想使用AccessDatabaseEngine 64位和IIS 64位(例如windows 2012 64位),请按照下面的步骤操作

  • 必须在IIS上添加角色asp.net 4.0、.net 4.0

  • 打开IIS管理器

  • 打开站点的应用程序池的advenced设置

  • 启用设置为False的32位应用程序(必须执行此操作,否则iis设置为32位引擎)

  • 如果您的站点使用.net 4.0,则.net Framework版本将设置为正确的版本

  • 6。[这是关键点!!!]托管管道模式设置为“经典”

    祝您好运:)

    要使用“Microsoft.ACE.OLEDB.12”,您需要安装“Microsoft Access数据库引擎2010可再发行版”

    有关此操作的信息页面如下所示:

    正如@user1297578正确指出的,实际下载如下:

    安装后,实际的程序集称为
    ACEOLEDB.DLL
    ,在命令提示符下的以下命令将在系统上为您找到它:

    C:\>DIR /s/b c:\ACEOLEDB.DLL
    c:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL
    
    以下是我在安装上述可再发行软件之前从程序收到的错误消息,仅供参考:

    Connection Failed. 
    Error from IDataInitialize::GetDataSource
    with connectionString=Data Source=C:\MyFileName.mdb;Mode=Share Deny Write;Provider=Microsoft.ACE.OLEDB.12.0;User Id=admin
    OLE DB Error Report:
        ErrorRecord:
        Hresult=80040154
        Description: Class not registered
        SQLErrorInfo: No error info available
        Source: Microsoft OLE DB Service Components
    

    您可以通过在安装项目中添加Microsoft Access Database Engine 2010作为先决条件来解决问题,以下链接向您展示了如何执行此操作,但请注意,如果使用VS2017,则路径不同,VS2017的路径为:

    “C:\Program Files(x86)\Microsoft SDK\ClickOnce引导程序\Packages”

    不是

    “C:\Program Files\Microsoft SDK\Windows\v7.0A\Bootstrapper\Packages”

    我还注意到,在某些情况下,您必须在用户的计算机上安装“AccessDatabaseEngine.exe”而不是“AccessDatabaseEngine_X64.exe”,即使它是64位windows

    这篇文章包括一段视频,演示了如何一步一步地完成这一切:


    向您致意

    是的,我同意您的意见。自从我在本地机器上安装了最新版本的office以来,一切都在正常工作。一旦我将代码部署到测试服务器上,我就会发现上面的错误。我可能无法在测试服务器上安装Office(由于某些原因)。那么,是否可以将所有必需的dll放入项目本身并将其部署到测试服务器上?您可以找到与您相关的主题问题:-您可以安装OLEDB提供程序而不是office-如果有人答复如何在项目中仅使用*.dll使用此库,您可以独立安装,那太棒了。我知道你问这个问题已经有一段时间了,但我面临着同样的问题,我需要知道是否有办法将此dll添加到asp web应用程序中。谢谢你的帮助。