Entity Framework Core: Une deuxième opération a commencé ce contexte, avant une précédente opération s'est terminée

Je suis en train de travailler sur un ASP.Net Core 2.0 projet à l'aide de Entity Framework Core

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.1" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0"/>

Et dans un de mes liste de méthodes que j'obtiens cette erreur:

InvalidOperationException: A second operation started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe.
Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()

C'est ma méthode:

    [HttpGet("{currentPage}/{pageSize}/")]
[HttpGet("{currentPage}/{pageSize}/{search}")]
public ListResponseVM<ClientVM> GetClients([FromRoute] int currentPage, int pageSize, string search)
{
var resp = new ListResponseVM<ClientVM>();
var items = _context.Clients
.Include(i => i.Contacts)
.Include(i => i.Addresses)
.Include("ClientObjectives.Objective")
.Include(i => i.Urls)
.Include(i => i.Users)
.Where(p => string.IsNullOrEmpty(search) || p.CompanyName.Contains(search))
.OrderBy(p => p.CompanyName)
.ToPagedList(pageSize, currentPage);
resp.NumberOfPages = items.TotalPage;
foreach (var item in items)
{
var client = _mapper.Map<ClientVM>(item);
client.Addresses = new List<AddressVM>();
foreach (var addr in item.Addresses)
{
var address = _mapper.Map<AddressVM>(addr);
address.CountryCode = addr.CountryId;
client.Addresses.Add(address);
}
client.Contacts = item.Contacts.Select(p => _mapper.Map<ContactVM>(p)).ToList();
client.Urls = item.Urls.Select(p => _mapper.Map<ClientUrlVM>(p)).ToList();
client.Objectives = item.Objectives.Select(p => _mapper.Map<ObjectiveVM>(p)).ToList();
resp.Items.Add(client);
}
return resp;
}

Je suis un peu perdu, surtout parce qu'elle fonctionne quand je le lance en local, mais quand je déployer pour ma mise en scène server (IIS 8.5) il me met cette erreur et il fonctionnait normalement. L'erreur a commencé à apparaître après que je l'augmentation de la longueur max d'un de mes modèles. J'ai aussi mis à jour la longueur maximum de la Vue correspondante Modèle. Et il existe de nombreuses autres méthodes qui sont très semblables et qu'ils sont au travail.

J'ai eu un Hangfire travail en cours d'exécution, mais ce travail n'a pas la même entité. C'est tout ce que je peux penser pour être pertinent. Toutes les idées de ce qui pourrait être la cause?

  • Vérifier this.
  • J'ai vu cela et bien d'autres questions similaires et de les essayé. Ma méthode a été async et j'ai fait de la synchronisation d'éviter ces problèmes. J'essaie aussi de supprimer le mappage, a également essayé de supprimer le .ToPagedList il continue à jeter de l'erreur.
  • Serait bon de voir une trace de la pile
  • Et pour savoir si plusieurs résultats sont activés
InformationsquelleAutor André Luiz | 2018-02-13