簡體   English   中英

使用WEB API和Entity Framework Project的IIS本地計算機上的“基礎提供程序無法打開”異常

[英]“The underlying provider failed to Open” exception on IIS Local Machine using WEB API and Entity Framework Project

我有一個Web API 2項目,可與本地IIS Express完美配合,但是當我在本地計算機IIS上部署時,出現以下錯誤:

{
  "Message": "An error has occurred.",
  "ExceptionMessage": "The underlying provider failed on Open.",
  "ExceptionType": "System.Data.Entity.Core.EntityException",
  "StackTrace": "   at System.Data.Entity.Core.EntityClient.EntityConnection.Open()\r\n   at System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection()\r\n   at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)\r\n   at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass49.<ExecuteFunction>b__47()\r\n   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)\r\n   at System.Data.Entity.Core.Objects.ObjectContext.ExecuteFunction(String functionName, ObjectParameter[] parameters)\r\n   at ServiceDBUtility.FamLinkEntities.MBSP_INSERT_ERROR_LOG(String p_ID_USER, String p_ERROR_MSG, String p_ERROR_TRACE, String p_ERROR_TYPE, String p_REQUEST_URL, Nullable`1 p_ERROR_DATE)\r\n   at ServiceDBUtility.Repository.LogRepository.WriteLog(String p_ID_USER, String p_ERROR_MSG, String p_ERROR_TRACE, String p_ERROR_TYPE, String p_REQUEST_URL, Nullable`1 p_ERROR_DATE)\r\n   at ServiceDBUtility.CommonFunctions.WriteLog(String USER_ID, Exception Ex, String reqURL)\r\n   at ServiceDBUtility.CommonFunctions.ThrowException(Exception e, HttpRequestMessage request, String customErrorMessage)\r\n   at LoginService.Controllers.LoginController.Login()\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.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.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.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.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>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()",
  "InnerException": {
    "Message": "An error has occurred.",
    "ExceptionMessage": "Login failed for user ''.",
    "ExceptionType": "System.Data.SqlClient.SqlException",
    "StackTrace": "   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)\r\n   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)\r\n   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)\r\n   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)\r\n   at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)\r\n   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)\r\n   at System.Data.SqlClient.SqlConnection.Open()\r\n   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.<Execute>b__0()\r\n   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)\r\n   at System.Data.Entity.Core.EntityClient.EntityConnection.Open()"
  }
}

有人可以提供有關導致此錯誤的原因的見解嗎?

這就是我解決這個問題的方法,

  1. 按WIN + R
  2. 輸入inetmgr並按Enter
  3. 選擇應用程序池
  4. 從右側選擇高級設置
  5. 轉到身份並選擇自定義帳戶
  6. 提供活動目錄的用戶名和密碼。

@mahesh-通過查看堆棧跟蹤,似乎存在一些登錄/身份驗證問題(從日志中找到摘錄)。 請檢查SQL Server上的憑據/訪問權限。

d__1.MoveNext()“,” InnerException“:{”消息“:”發生錯誤。“,” ExceptionMessage“:”用戶“登錄失敗。”,“ ExceptionType”:“ System.Data.SqlClient.SqlException ”,“ StackTrace”:“位於

為了將來參考,這通常是SQL Server錯誤,請在觸摸代碼之前打開SQL Server Management Studio,看看您是否能夠登錄,可能不會登錄。 然后打開SQL Server配置管理器,並確保您的服務器正在運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM