从池中获取连接之前超时时间已过 - Entity Framework

Timeout period elasped prior to obtaining a connection from the pool - Entity Framework

我有一个 ASP.NET MVC 应用程序部署在 Azure 应用服务上。我正在本地调试此应用程序并使用 IIS Express。 Windows 10 系统上没有安装 IIS。

我的代码是这样写的:用户登录是这样验证的

try
{
    using(var context = new techEntities())
    {
       wtuser u = (from c in context.wtUsers
                      where c.email == email select c).FristOrDefault();

       if(u == null)
       {
            return new userOT {error = "Invalid email or password"};
       }
         
       ...
   }
}
catch(exception ex)
{
   ...
}

连接字符串:

<add name = "localsqlserver" 
connectionString = "Data Source=xxx;Initial Catalog=xxx; Integrated 
Security=true;Max Pool Size=50000;" ProviderName = "System.Data.SqlClient"/>

我通常使用 Windows authentication.I 登录数据库,希望我上面的连接字符串不会有问题吗?

注意:我从Azure导出并在本地SQL express 2019导入的数据库。

但是,我得到这个错误:

System.Data.EntityException: The underlying provider failed to open.

System.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 is reached.

可能是什么问题?如何解决这个问题?谢谢

更新

步骤 1.

确保您可以通过 ssmsWindows authentication.

登录本地 sql server

步骤 2.

确保连接字符串正确。

您可以像下面这样更改您的连接字符串。更多详情,您可以see my answer in this post.

并且建议您使用SQL语句来. Test demo can use this

<add name="DefaultConnection" connectionString="Data Source =**;Initial Catalog = {your db in server not azure};User Id = {userid};Password ={password};" />

步骤 3.

总的来说,您提供的EF代码片段不是很漂亮。可能只是示例代码的原因,请根据文章中的link检查this tutorial to create an Entity using Visual Studio. You can also download the demo进行审核,并尝试修改您的代码。

当然你也可以参考Code First tutorial来创建。使用Visual Studio创建可能更直观方便,简单易学。