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

时间:2012-02-12 17:12:16

标签: visual-studio-2010 oracle

当我们尝试部署连接到Oracle数据库的新项目时,我们遇到了一些问题..

在我的开发工作站上,我将Oracle dll安装在c:\ app \ oracle \ product \ 11.2.0 \ client_1 \ BIN中,但在开发Web服务器上,它在c:\ oracle \ product \ 11.2中停滞不前.0 \ client_1 \ BIN(注意不在app文件夹中)。

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

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

  1. 将Oracle安装移至我的计算机上的c:\ app ...并从我的开发计算机重建。这不起作用,因为有相对的dll依赖于那条路径。
  2. 因为1不起作用,我们尝试将环境路径变量重置为我的机器上的c:\ oracle。那没用。
  3. 尝试将所需的dll复制到我的bin目录中,因为我的理解是Visual Studio将从GAC构建,然后从bin目录构建。那没用。
  4. 知道将开发服务器上的Oracle重新安装到c:\ app \ Oracle不是一个选项,是否有其他人遇到此问题?

1 个答案:

答案 0 :(得分:0)

您需要确保正确设置了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. 停止正在运行

    的所有服务(start - run - services.msc)
    • oracle mts recovery
    • 分布式事务处理协调员
  2. 从文件系统中删除所有oracle目录(C:\ app,C:\ Program Files | C:\ Program Files(x86(

  3. 从系统路径中删除Oracle条目

  4. 从环境变量(如果存在)中删除任何Oracle条目,例如ORACLE_HOME

  5. 打开注册表编辑器(start - run - regedit)并从以下键中删除所有oracle条目

  6. HKLM \ SOFTWARE \ HKLM \ Software \ Wow6432Node(仅限64位机器)

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

    2. 重新启动机器

    3. 下载两个项目之一

    4. Oracle客户端安装(完整)

      ODAC(Oracle数据提供商)

      1. 安装它们(确保选择客户端版本 - 使用最少的运行时安装) - 不要使用即时客户端 - 它似乎永远不会正常工作。

      2. 将TNSNames.ora文件复制到

      3. 再次使用该实用程序进行测试。它应该是成功的。

      4. 第3步 -

        如果上述实用程序有效 - 那么您需要确保应用程序的位级别与Oracle客户端安装的位级别相匹配。对于应用程序 - 这将是应用程序池的位级别。

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