相关疑难解决方法(0)

我如何在.NET中使用Oracle?

不幸的是,我正在尝试使用.NET中的Oracle,这就像回到1997年.正确解释事情是一个弱点的迹象,注册表和环境变量似乎具有特色.

所以这是我有多远.

我在Oracle.com上填写了一份关于我生活的大表,然后下载了

ODBC Windows 64位实例客户端,11.2.0.3.0并将其压缩到一个文件夹中. 基本的Windows 64位Instant Client,11.2.0.3.0并将其解压缩到与上面相同的文件夹中.

我运行了安装.exe(没有MSI,记得这是1997).

我添加了一个TNS_NAMES环境变量,指向网络共享上的公司TNSNames.ora文件,并在控制面板中设置一个快速DSN并运行测试 - 它工作正常!

然后我下载了最新的ODP.NET for .NET 4.0的XCOPY版本,并将其复制到我的源代码控制工作区下的Dependencies文件夹中.

我从我的项目添加了一个引用到Dependencies\odp.net4\odp.net\bin\4\Oracle.DataAccess.dll

我读过,我需要让管理ODP.NET东西,知道在哪里可以找到其非托管Oracle库,我猜是依赖\ odp.net4\BIN\OraOps11w.dll但它可能是一些其他的Oracle二进制文件某处?

现在我正在设置一个名为DllPath的配置文件参数.遗憾的是,Oracle文档似乎没有意识到.NET配置文件需要在configSections部分中连接它们的部分.

这是配置文件部分.

<oracle.dataaccess.client>
  <add key="DllPath" value="D:\Trunk\Dependencies\odp.net4\bin" />
</oracle.dataaccess.client>
Run Code Online (Sandbox Code Playgroud)

configSection中有什么内容?我在这上面找到的几个线程给出了一个例子,然后说"我不知道应该是什么类型",这是主要的一点!

任何人都可以建议我吗?有没有人知道从.NET查询Oracle视图的傻瓜指南的链接?

我能在1997年做些什么来阻止自己在2012年使用Oracle吗?

UPDATE

只是一个快速更新.我已将OraOps11w.dll复制到我的输出bin文件夹中,并删除了我之前添加的任何web.config文件更改.

我现在得到以下错误,我正在研究.

无法加载文件或程序集"Oracle.DataAccess"或其依赖项之一.尝试加载格式不正确的程序.

其他一些论坛说说在GAC,这我很希望避免注册Oracle.DataAccess.dll - 我无法看到其中的差别是什么呢,但我给它一个去.

更新2

在GAC中注册Oracle.DataAccess.dll库没有任何区别,我已取消注册.

工作周的结束在我身上,我要赶火车,但是我在这里通过电子邮件发送的另一开发团队,并希望他们并肩作战之前(而不是用于夜间提取其他人一样).

更新3

今天早上我下载并安装了64位版本的IIS Express 8.0 RC.VS2010不支持64位版本,因此需要从命令行运行.这很简单,通过查看任务管理器,我能够看到VS用于iisexpress.exe*32的命令行.

不幸的是,当浏览到由64位IIS Express托管的我的站点时,我收到此错误.

处理程序"ExtensionlessUrl-Integrated-4.0"在其模块列表中有一个错误的模块"ManagedPipelineHandler"

这个问题在这个问题上太过分了,所以我将尝试使用32位版本的ODP.NET.

更新4

我下载了32位版本的完整安装,但是当我看到Oracle Universal Installer时我感到很害怕.与我珍贵的开发盒相信它看起来太过90年了.所以我使用的是32位'XCopy'客户端,这让我可以打开我网站的主页,因此引用正在运行.感谢那些暗示架构不匹配32/64问题的人.

现在我在实例化一个新的OracleConnection时正在研究这个错误.

提供程序与Oracle客户端版本不兼容

更新5我想我已经做到了.

所以我下载了32位最新的11g"Instant Client",并将它放在我的\ Dependencies文件夹中,用于解决方案中继代码库.我将此文件夹添加到%PATH%系统环境变量中,并将OraOps11w.dll文件放入其中.

最后,_oracleConnection = new OracleConnection(connectionString)不会抛出!现在我需要确保在我部署生产时我在桌子上放了一瓶Laphroaig.

因此,回顾一下,对于Windows 7,64上的IIS Express 7.5(这是一个32位进程):

  • 将32位11g"Instant Client"下载并解压缩到某个文件夹,然后将此位置添加到PATH中.Oci.dll是主要的Oracle客户端非托管库.

  • 下载并将32位ODP.NET解压缩到某个文件夹.

  • 将OraOps11w.dll复制到Instant …

.net c# oracle

26
推荐指数
2
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

oracle ×1