索引超出了ASP中数组的界限.Net Web API

本文关键字:界限 Net Web API 数组 ASP 索引 | 更新日期: 2023-09-27 18:02:20

我的一个Web API服务出现以下错误:

"Message": "An error has occurred.",
"ExceptionMessage": "Index was outside the bounds of the array.",
"ExceptionType": "System.IndexOutOfRangeException",
"StackTrace": "   at System.Collections.Generic.List`1.Add(T item)
at System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user)
at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
at System.Data.Linq.DataContext.ExecuteMethodCall(Object instance, MethodInfo methodInfo, Object[] parameters)

在一段时间内,从RestClient进行测试时不会出现此错误,但如果我们开始对其进行负载测试,就会出现此错误。

我无法解决这个问题,所以为了修复,我在连接字符串中做了一些更改,如下所示:

connectionString="Integrated Security=false;Persist Security Info=False;
Initial Catalog=xyz;Data Source=SQLSERVER1;User Id=sa;Password=****;
MultipleActiveResultSets=True;Asynchronous Processing=true; Connection Timeout=2147483647;
Pooling=true; Max Pool Size=200; Connection Lifetime = 0; ConnectRetryCount=2;
ConnectRetryInterval=2;"

我错过什么了吗?

索引超出了ASP中数组的界限.Net Web API

我在这里有一个疯狂的预感(因为你的问题中的信息很少(,我会说你正在从多个线程同时更新List<T>List<T>不是线程安全的

如果您正在做这样的工作,请使用ConcurrentBag<T>,或者锁定插入到列表中的内容。