【发布时间】:2015-03-24 12:04:40
【问题描述】:
我在这方面承受着压力,所以任何帮助都会很棒。这似乎是一个很长的问题,但事实并非如此。我刚刚包含了尽可能多的信息。rgds M
我在 3 个环境(Dev、UAT 和 Prod)上安装了一个带有 Web 服务的 Web 应用程序系统从 SQL 2008 上的 SSIS 包调用 Web 服务,它在所有环境中的 Web 服务上都遇到了 no Problem 方法。然后我尝试在方法中打开一个 oracle 连接,如下面的简单代码中使用 Oracle 程序集:Oracle.DataAccess.Client;
她是示例代码:
// Create and open a connection.
OracleConnection mConnection = new OracleConnection(sCnx);
mConnection.Open(); -- Fails at this call.
根据此类似问题,异常消息和编号为空白 - Oracle.DataAccess.Client.OracleException at Connection.Open()
但是,我已经检查了 Pass through 设置,并且在所有环境中都将其设置为 true。
这是我的连接字符串
<add name="cnx" connectionString="DATA SOURCE=MYHUP1.US.COM;PASSWORD=456336;PERSIST SECURITY INFO=True;USER ID=MYAPPUSER" providerName="Oracle.DataAccess.Client"/>
这是我在下面使用的 DLL 版本。所有 Dll 都是使用我的应用程序和 bin 文件夹构建和部署的。我还检查了 Oracle.DataAccess.dll 是从 BIN 文件夹而不是 GAC 或从服务器上安装的 Oracle 11(64 位)加载的。
Oracle.DataAccess.dll 版本 2.112.3.0 32 位 这些也包含在 bin oci.dll、ociw32.dll、orannzsbb11.dll、oraocci11.dll、OraOps11w.dll 中
我的应用程序在 64 位机器上运行,但它是一个 32 位应用程序,我在应用程序池中设置了这个。它再次在 DEV 上运行良好,但在 Prod 上运行良好。它还在所有 3 个环境中使用相同的服务帐户运行。
困扰我的是错误消息是空白的,我不得不输入大量代码来检查加载的模块和运行服务的组。这些看起来都很好。
来自异常的错误消息:注意消息是空白的..这是我抽出所有东西时得到的信息
Oracle.DataAccess.Client.OracleException 在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode、OracleConnection conn、IntPtr opsErrCtx、OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src) at Oracle.DataAccess.Client.OracleConnection.Open() 在 XXX.Business.XXXBO.TestConnectionAndDeleteData(Nullable`1 updateDate, Int64 currentUserID) 在 C:\Development\XXX........
在我的开发和生产环境中,我安装了以下版本的 Oracle,但如上所述,我在 Bin 目录中使用我自己的驱动程序,所以我认为这无关紧要..
DEV = Oracle Provider version 11.2.0.1.0
PROD = Oracle Provider Version 11.1.0.6.20
有没有人知道为什么这在我的 Prod 环境中不起作用。我已经精通 IIS,并且与其他环境相比,它们是相同的。只是试图将其归结为 IIS 问题或 Oracle。请注意,我自己无权访问 UAT 环境,这也有帮助!!
最好的问候米克
【问题讨论】:
-
确实安装了 32 位客户端我们在 2 周前遇到了同样的问题,我们安装了 11.2.x 版本,关于您的连接字符串,您只需要在连接中传递数据源、用户名、密码.net 配置文件中的字符串..
-
感谢 MethodMan..我将安装 32 位客户端 11.2 并查看是否有所作为。那里的版本是 64 位的,所以我应该升级它还是安装 32 位版本?谢谢米克
-
并排安装.. 64 位版本在使用标准连接字符串方面不起作用.. 不知道 Oracle 如何让这个错误持续这么长时间而不修复它.. 并排安装就是我们所做的..它将安装到它自己的文件夹中,所以你应该没有问题..当你使用.dll时,只需将副本设置为local = true并删除旧的并重新添加新的.dll..确保您使用导航到 4.x 文件夹而不是 2.x 文件夹..
-
感谢 Methodman.. 非常感谢。我现在将版本从 11.1g 升级到 11.2。这是一个 64 位安装。所以一旦完成,你认为我也应该在它旁边安装 32 位。嗯不错。唯一我不确定的是我将我的应用程序使用的 Oracle 驱动程序复制到应用程序 Bin 文件夹中,并且我没有使用已安装的驱动程序,因此安装 32 位帮助。仔细检查 MM 并感谢您的帮助... rgds M
-
嗨 Methodman...我之前遇到过这个问题,因此将 DLL 放在我自己的文件夹中的原因...我知道.. DLL 地狱哈哈。无论如何,我做了你的建议.. 未安装并重新安装,一些配置和它的工作就像一个魅力.. 真的很感激。如果您提供答案,我会立即接受...谢谢一百万..问候米克
标签: c# asp.net .net iis oracle11g