【问题标题】:Connecting to Oracle from ASP.NET从 ASP.NET 连接到 Oracle
【发布时间】:2014-05-28 22:16:40
【问题描述】:

我在 Windows 8.1 x64 机器上并尝试通过 ASP.NET WebForms 4 连接到我本地安装的 Oracle 11g 数据库我从 Visual Studio 2013IIS Express 运行的应用程序。 我从这个NuGet 包下载了ODP.NET。但我不断收到错误Could not load file or assembly or one of its dependencies. An attempt was made to load a program with an incorrect format.

请有人帮我解决这个问题。关于 Oracle 和 .NET 的最新源代码和示例很少。

【问题讨论】:

    标签: c# asp.net oracle oracle11g odp.net


    【解决方案1】:

    这通常发生在从 64 位应用程序引用 32 位或相反的程序集时。请确保您的 WebForm 项目的目标平台与引用的 Oracle 程序集相同。

    【讨论】:

    • 是的,已经尝试过了。我从项目属性将项目定位到 x64。还是一样的错误。
    • 我认为你需要做相反的事情。 ODP 驱动程序是 32 位的。确保并以 x86 为目标!
    【解决方案2】:

    引用您下载 Oracle.DataAccess.dll 的页面:

    仍然需要在生产或开发机器上安装 Oracle 才能连接到 Oracle(这些库的大小超过 100MB,因此将它们包含在 NuGet 包中没有意义),但这包至少可以让项目成功构建

    所以现在您只能构建您的代码,而不能运行它。要运行它,您应该获得:来自此 Oracle 页面的适用于 Windows x64 的 64 位 ODAC 11.2 Release 5 (11.2.0.3.20):http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

    如果您的 ASP.NET 已安装,请在下载并安装后运行如下命令:

    C:\oracle\product\11.2.0\client_1\odp.net\bin\4> OraProvCfg  /action:gac  /providerpath:"C:\oracle\product\11.2.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll" 
    

    (假设您的安装目录为C:\oracle\product\11.2.0\client_1\

    【讨论】:

    • 谢谢。我想这就是为什么我使用 Visual Studio 中的gacutil 在我的 GAC 中注册下载的 NuGet 包但没有结果的原因。我现在尝试运行OraProvCfg
    猜你喜欢
    • 1970-01-01
    • 2013-09-25
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2011-03-29
    • 1970-01-01
    相关资源
    最近更新 更多