This can happen if you execute a query while iterating over the results from another query. I ran into this issue when I called another async call while I was executing one result.
public async Task<IActionResult> GetTicketsInventory(int customerID, int accountID)
{
var service_response = await this.ticketsService.GetTicketsInventory(customerID, accountID);
List<TicketsInventoryCO> items = service_response.Response.ToConvert();
// this is my second call where i am trying to get results based on some condition
// to get customer names
var customer_response = await this.customerService.GetAllMobilityCustomers();
return ProcessServiceResponse(
apiContext,
service_response,
items,
null);
}
This can be easily solved by allowing MARS in your connection string. Add MultipleActiveResultSets=true to the provider part of your connection string (where Data Source, Initial Catalog, etc. are specified).
Sample connection string
"CoreCS": "Data Source=xxx.xxx.xxx.xxx;Initial Catalog=Mobility;Integrated Security=False;User Id=sa; Password=xxxxxx;Max Pool Size=20; Connection Timeout=10;MultipleActiveResultSets=true;",