部署C#的Web应用程序连接到Oracle数据库

问题描述:

当我们试图部署连接到Oracle数据库的新项目中,我们遇到了一些问题..部署C#的Web应用程序连接到Oracle数据库

在我的开发工作站,我有我的Oracle DLL的安装在c :\ app \ oracle \ product \ 11.2.0 \ client_1 \ BIN,但在开发Web服务器上,它位于c:\ oracle \ product \ 11.2.0 \ client_1 \ BIN中(注意不在应用程序文件夹中)。

当部署应用程序时,那些被引用的dll需要位于两台机器的相同位置。不用说,我们从开发服务器收到错误。

为了解决这个问题,我们尝试了一些东西 -

  1. 移动在Oracle安装到C:我的机器上\ APP ...和我的开发机器重建。这不起作用,因为有相关的DLL依赖于这条路径。
  2. 由于1没有工作,我们尝试将环境路径变量重置为我的机器上的c:\ oracle。这没有用。
  3. 试图将需要的DLL复制到我的bin目录,因为我的理解是Visual Studio将从GAC构建,然后从bin目录构建。这没有用。

知道在开发服务器上重新安装Oracle到c:\ app \ Oracle不是一个选项,是否有其他人遇到过这个问题?

您需要确保您的Oracle安装已正确设置。我有一些可以帮助解决这个问题的工具。

第1步 -

以下将确认:第一,.NET工作与Oracle服务器上的公用事业 http://tsells.wordpress.com/2010/02/18/oracle-connection-tester-for-net-applications/

第2步 -

如果该实用程序的工作之上 - 然后转至步骤3否则--net在这台机器上看不到oracle。首先检查你的路径声明 - 确保oracle bin目录指向的是正确的。如果没有 - 更改并重试。

如果这不起作用 - 我建议彻底卸载oracle并重新安装。使用以下步骤。

  1. 停止任何服务(开始 - 运行 - 服务。MSC)下方运行

    • 的Oracle MTS恢复
    • 分布式事务处理协调
  2. 从文件中删除系统中的所有Oracle目录(C:\应用程序,C:\ Program Files文件| C: \程序文件(x86(

  3. 从系统中删除路径条目甲骨文

  4. 删除任何Oracle ENTR从环境变量IES(如果有的话),如ORACLE_HOME

  5. 打开注册表编辑器(开始 - 运行 - 注册表编辑器),并从以下关键

HKLM \ SOFTWARE删除任何Oracle项\ HKLM \ SOFTWARE \ Wow6432Node(仅64台的机器)

  1. 清空回收站(让我感觉更好):)

  2. 重启机器

  3. 下载的两个项目之一

Oracle客户端安装(全)

ODAC(Oracle数据提供商)

  1. 安装它们(确保如果您选择客户端版本 - 您至少使用运行时安装) - 不要使用即时客户端 - 它似乎从未正常工作。

  2. tnsnames.ora文件在

  3. 测试与公用事业再次复制。它应该是成功的。

第3步 -

如果上述程序的工作 - 那么你需要确保你的应用程序的位级别的Oracle客户端安装位水平相匹配。对于应用程序 - 这将是应用程序池的位级别。

注 - bin文件夹中的oracle.dataaccess.dll文件用于帮助创建映像(ngen,aspnet编译)。一旦尝试调用.net的oracle数据提供程序,它将被路由到您的客户端安装以执行实际的数据访问。