【问题标题】:How to solve "ORA-6413: Connection not open." on windows 7如何解决“ORA-6413:连接未打开”。在 Windows 7 上
【发布时间】:2014-01-07 13:18:16
【问题描述】:

我有一个 ASP .NET MVC 4 应用程序,其数据库 (Oracle 10g) 位于远程服务器上。

现在我希望它与本地数据库服务器(在同一台机器上)一起工作。我设置了 Oracle 10G 快捷版。设置成功,我可以使用 SQL plus 访问数据库。但我的应用程序根本没有连接到它(使用 Oracle.DataAccess.dll)。

我在互联网上搜索了很多,发现可能是因为安装 Visual Studio 2010 的目录路径中有一个特殊字符(Program Files (x86))。所以我把它卸载了,安装在另一个没有特殊字符的路径中。

应用程序仍然无法连接到本地 oracle 服务器。

为了测试,我创建了另一个简单的控制台应用程序,并在 Main() 函数中编写了连接本地数据库的代码,并成功连接。应用程序中完全相同的代码不起作用。

我得到的错误是:

ORA-6413: Connection not open.
Oracle.DataAccess.Client.OracleException was unhandled by user code
Message=ORA-6413: Connection not open.
Source=Oracle Data Provider for .NET
DataSource=""
Number=6413
Procedure=""
StackTrace:
   at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
   at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
   at Oracle.DataAccess.Client.OracleConnection.Open()
   at IBeam.Common.Repositories.SessionProvider.GetSessionFactory(String groupCode, String companyCode) in D:\Projects\IBeamNewRepo\IBeamCopy\Src\Trunk\IBeam.Common\Repositories\SessionProvider.cs:line 61
   at IBeam.Common.Repositories.SessionProvider.GetSession() in D:\Projects\IBeamNewRepo\IBeamCopy\Src\Trunk\IBeam.Common\Repositories\SessionProvider.cs:line 191
   at IBeam.Controllers.AccountController.Login(String url) in D:\Projects\IBeamNewRepo\IBeamCopy\Src\Trunk\IBeam\Controllers\AccountController.cs:line 38
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.InvokeSynchronousActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41()
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
   at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49()

我的代码连接到 Oracle:

var connection = new OracleConnection();
                    var str =
                        @"Data Source = (DESCRIPTION =
                         (ADDRESS = (PROTOCOL = TCP)(HOST = mridula-PC)(PORT = 1521))
                         (CONNECT_DATA =
                         (SERVICE_NAME = XE)
                         )
                         );
                         User Id=app$security;
                         Password=appsecurity;";
connection.ConnectionString = str;
connection.Open(); <- Exception Here

我的操作系统是Windows 7

【问题讨论】:

    标签: c# asp.net-mvc-4 oracle-xe


    【解决方案1】:

    最好的解决方案是升级到 Oracle 11G 第 1 版客户端工具(内部版本:11.1.0.6.0),而不是在 10G 客户端上应用可能无法产生预期结果的一系列补丁。客户端工具的 11G 版本经过测试并确认包含针对上述错误的 FIX。如果绝对需要坚持10G版本的客户端(不应该),参考以下:

    对于 32 位 Oracle 客户端:

    1. 安装 10.2.0.2 升级 - 您需要选择之前 10.2.0.1 安装的正确 Oracle Home 路径。

    2. 之后,您需要为 10.2.0.2 客户端工具安装补丁 (5383042)。

    对于 64 位 Oracle 客户端:

    1. 安装 64 位 10.2.02 升级 - 选择正确的 Oracle Home。

    2. 安装 64 位 10.2.03 升级 - 选择正确的 Oracle Home。

    参考:http://blogs.msdn.com/b/debarchan/archive/2009/02/04/good-old-connectivity-issue.aspx

    【讨论】:

    • 但这是关于客户的。 10G快递服务器呢?我也需要升级吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 2013-06-27
    • 1970-01-01
    • 2015-11-04
    • 2023-01-20
    • 2013-07-20
    • 2012-10-13
    相关资源
    最近更新 更多