2017-02-15 67 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