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;",