2017-02-15 68 views
0

我将我的C#MVC API连接到Oracle,但是当我运行API并测试它时,我得到了下面的错误。我检查了.NET引用并安装了Oracle.Data.Access,另外我删除了它并重新安装了Oracle.Data.Access,但仍然存在相同的错误。这可能是什么?通过.NET连接到Oracle数据库mvc

{ 
"Message": "An error has occurred.", 
"ExceptionMessage": "ORA-12170: TNS:Connect timeout occurred", 
"ExceptionType": "Oracle.DataAccess.Client.OracleException", 
"StackTrace": " at   Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)\r\n at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)\r\n at Oracle.DataAccess.Client.OracleConnection.Open()\r\n at MRF_API.Controllers.ItemController.Get(String searchdesc) in C:\\Users\\nevinj\\Documents\\Visual Studio 2015\\Projects\\MRF_API\\MRF_API\\Controllers\\ItemController.cs:line 88\r\n at lambda_method(Closure , Object , Object[])\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()" 
    } 

回答

1

你必须在这一点上分析实际问题是ORA-12170:TNS:连接超时发生

你会在网上发现,有很多的原因,这错误可能被触发,但还能为你检查的第一件事是确保您的连接字符串/ TNS条目设置正确。

尝试使用相同的连接字符串从同一台机器,但另一个客户端(例如SQLPLUS),并看看是否能工程(以确认该数据库已启动并可以从客户端计算机)。

+0

感谢您的回复。我会跟进你的建议。 – johnquinn