OracleConnection抛出空异常

时间:2012-09-17 13:34:32

标签: c# oracle database-connection odp.net odac

我正在尝试从我的新PC连接到我的Oracle数据库。我刚刚安装了Visual Studio和ODAC。但当我尝试做一个简单的连接我得到一个空消息,空源,空数的异常,只是错误代码是 -2147467259

OracleConnection Prueba;
Prueba = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1");
Prueba.Open();

例外详情
这是Exception.ToString()代码:

  

“Oracle.DataAccess.Client.OracleException at   Oracle.DataAccess.Client.OracleException.HandleErrorHelper(的Int32   errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx *   pOpoSqlValCtx,Object src,String procedure)
    在   Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,   OracleConnection conn,IntPtr opsErrCtx,Object src)
    在   Oracle.DataAccess.Client.OracleConnection.Open()
     在   OracleConnectionS.Program.Main(String [] args)in   C:\ Users \ Simetri \ Documents \ Visual Studio   2010 \项目\的OracleConnection \的OracleConnection \的Program.cs:行   19"

有关为什么会发生这种情况的任何想法?

更新

如果我以管理员身份运行visual studio,我就不会得到异常,我可以很好地连接到数据库。

我尝试向Oracle Directory C:\Oracle提供FULL CONTROL权限。但是如果我以正常方式运行Visual Studio(而不是管理员),我会继续获得异常。

背景资料
- 我正在使用Windows 7 64位
- Visual Studio 2010
- 我可以通过SQL * PLUS

连接

3 个答案:

答案 0 :(得分:3)

因此,在安装了所有类型的ODAC并搜索与此相关的每个帖子之后。

最后,32位版本的清洁安装是解决方案。

  • 首先,您需要取消所有已安装的其他oracle客户端。
  • 之后,查找您想要的任何ODAC版本(如果可行,请查看最新版本)但请务必下载32位版本。

为什么?

与开发Visual Studio的版本有关。如果您正在开发一个控制台应用程序,您将对客户端版本没有问题,但如果您使用的是Web项目,那么您肯定需要32位版本

  • 最后确保目标平台在visual studio中的所有项目都是“32位”
  • 并引用刚刚安装的新Oracle.DataAccess.dll

答案 1 :(得分:0)

请尝试将连接字符串重新格式化为此表单并查看其工作原理

<add name="LoisDataAccess" connectionString="Data Source=LOISPRD;Persist Security Info=True;User ID=ABC;Password=DEF" providerName="System.Data.OracleClient" />

答案 2 :(得分:0)

如果您使用的客户端是“即时客户端”,那么通过将一些Oracle-DLL复制到您的解决方案中可能会更好一些 - 参见this

如果可能,我建议使用不同的.NET提供程序......根据我的经验,大多数商业提供程序比Oracle .NET提供程序的问题要小得多 - 请参阅here on SO