Asked by:
Randomly getting "The underlying provider failed on Open"

Question
-
I don't know if this is the best category for this.
My MVC 5 website has been throwing this exception, randomly, for the last month.
Randomly means it can happen once 2-3 days in a row, or not happen for also 10 days in a row.
Restarting the app pool does not fix it, all i can do is reboot the server (Windows 2016 server).
The application(s) connecting to this database are unable to read/write all at once, and any attempt from the code throws this:
EXCEPTION TYPE: System.Data.Entity.Core.EntityExceptionEXCEPTION MESSAGE: The underlying provider failed on Open.STACK TRACE: at System.Data.Entity.Core.EntityClient.EntityConnection.<OpenAsync>d__8.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.Core.Objects.ObjectContext.<EnsureConnectionAsync>d__9.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.Core.Objects.ObjectContext.<ExecuteInTransactionAsync>d__3d`1.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<ExecuteAsyncImplementation>d__9`1.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter`1.GetResult()at System.Data.Entity.Core.Objects.ObjectQuery`1.<GetResultsAsync>d__e.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter`1.GetResult()at System.Data.Entity.Internal.LazyAsyncEnumerator`1.<FirstMoveNextAsync>d__0.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.Infrastructure.IDbAsyncEnumerableExtensions.<SingleOrDefaultAsync>d__38`1.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter`1.GetResult()at System.Data.Entity.Internal.Linq.InternalSet`1.<FindInStoreAsync>d__6.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at System.Data.Entity.Internal.Linq.InternalSet`1.<FindInternalAsync>d__0.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft.AspNet.Identity.TaskExtensions.CultureAwaiter`1.GetResult()at Microsoft.AspNet.Identity.EntityFramework.UserStore`6.<GetUserAggregateAsync>d__67.MoveNext()--- End of stack trace from previous location where exception was thrown ---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft.AspNet.Identity.AsyncHelper.RunSync[TResult](Func`1 func)at LiveDispatch.Web.Services.AppService.UserCanAccessClient(String userId, Int32 clientId) in R:\Levitica\LiveDispatch\LiveDispatch.Web\Services\AppService.cs:line 621at LiveDispatch.Web.API.Controllers.UsersController.GetUsersByRole(Int32 clientId, String role) in R:\Levitica\LiveDispatch\LiveDispatch.Web\API\Controllers\UsersController.cs:line 148INNER EXCEPTION: System.Data.Entity.Core.EntityException The underlying provider failed on Open. Void MoveNext()InvalidOperationException Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. System.Exception ExceptionWithStackTrace(System.Exception)Now, I use Entity Framework with unit of work and repositories. Every usage of the DbContext is inside a using() block.
I don't know if this exception is due to a connection leak or a deadlock, but i don't know how to trace them.
What are all the possible causes for this exception? It's not a connection string configuration or anything that coud fix it right away, because as i said it works well most of the time, till it doesn't suddenly.
There are at the moment maybe like 50 users using it, most of them thru APIs from a mobile device.
The database is SQL Server Express. My connection string is as such:
connectionString="Data Source=localhost;Initial Catalog=my_db_name;Persist Security Info=False;User ID=my_username;Password=my_password;MultipleActiveResultSets=True;"
Any idea?
Thanks!
- Moved by Wendy ZangMicrosoft contingent staff Monday, February 4, 2019 3:20 AM
Saturday, February 2, 2019 9:51 PM
All replies
-
Hi Stesvis,
According to your description, your issue is more related about ASP.NET. And this forum is discussing and asking questions about Visual C#. So it will be more appropriate to ask your question at ASP.NET Forum.
Thank you for your understanding.Regards,
Kyle
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.Monday, February 4, 2019 3:17 AM