繁体   English   中英

通过.NET MVC连接到Oracle DB

[英]Connect to Oracle DB via .NET mvc

我将C#MVC API连接到Oracle,但是当我运行API并对其进行测试时,出现以下错误。 我检查了.NET参考并安装了Oracle.Data.Access,此外,我将其删除并重新安装了Oracle.Data.Access,但仍然存在相同的错误。 这可能是什么?

 {
 "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()"
  }

此时,您必须分析的实际问题是ORA-12170:TNS:Connect超时发生

您会发现在网上有很多原因可能导致触发此错误,但您首先要检查的是确保正确设置了连接字符串/ TNS条目。

尝试使用来自同一台计算机但来自另一个客户端(例如sqlplus)的相同连接字符串,并查看其是否有效(以确认数据库已启动并且可以从客户端计算机访问)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM