C# Azure SQL达到工作进程上限忽略池大小

C# Azure SQL达到工作进程上限忽略池大小,c#,asynchronous,stored-procedures,azure-sql-database,C#,Asynchronous,Stored Procedures,Azure Sql Database,我必须在SQL中存储很多行。下面是我用C#编写的一些伪代码: using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DataContext"].ConnectionString)) { await con.OpenAsync(); var sc = new SqlCommand("InsertUpdateMyobject", con); sc.CommandType = Com

我必须在SQL中存储很多行。下面是我用C#编写的一些伪代码:

using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DataContext"].ConnectionString))
{
    await con.OpenAsync();
    var sc = new SqlCommand("InsertUpdateMyobject", con);
    sc.CommandType = CommandType.StoredProcedure;
    sc.Parameters.AddWithValue("code", h.Code);
    await sc.ExecuteNonQueryAsync();
    // two more stored proc calls
}
我已将3个存储过程移到一个存储过程中,以限制sqlcommands的执行。有一个int作为输出参数,其中包含作用域_identity()。我在连接字符串中添加了以下内容:

MultipleActiveResultSets=False;加密=真;TrustServerCertificate=False;连接超时=30;ConnectRetryCount=3;ConnectRetryInterval=10;TransparentNetworkIPResolution=False;最大池大小=60

还尝试添加
异步处理=true到连接字符串

我已将
最大池大小设置为60,因为我使用的是S0 Azure SQL数据库。我不想扩大到S1、S2或S3。我只希望代码执行不抛出异常,在下一次执行之前再等待一段时间。我正在运行带有.net 4.6.2的控制台应用程序,因此支持连接字符串中的重试部分

当我运行sql部件大约100次时,我得到一个聚合异常,其中包含60多个内部异常:

它是荷兰语,上面写着:

超时已过期。操作完成前的超时时间或服务器没有响应

及以下:

超时已过期。从池中获取连接之前经过的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小

我的存储过程只在3个表上执行插入和删除操作,并在int(输出参数)中返回其中一个表的新主键。(主表,包含2个子表的父表,表)

看起来有点像这样 但我没有数据阅读器或表格。只有一个int作为输出。
另外,此应用程序是当前唯一一个访问azure db的应用程序。

在给定时间点,您的整个应用程序运行了多少并发数据库操作?100,因为我将mainobject集合限制为100。但它的生产量将超过10000。。。到目前为止,我唯一的解决方案是返回到同步运行所有sql。一次只能运行60个sql吗?