ASP.NET MVC ‘No Parameterless Constructor’ pode ser um erro enganoso

Problema

Todos nós vimos isso:

Cenário

E geralmente perdemos tempo tentando descobrir por que seu contêiner IoC não está funcionando direito, etc.

O erro não é sobre um IoC mal configurado. É porque algo -durante- a injeção de dependência falhou.

O verdadeiro erro está realmente escondido no rastreamento da pilha, onde a mensagem de erro não está sendo exibida.

Solução

IoC não foi configurado corretamente . Verifique o que o controlador está tentando injetar.

  • Verifique se você está exigindo um banco de dados ou serviço de terceiros.
  • Verifique se você pode acessar o banco de dados ou serviço de terceiros.

Para mim, geralmente tenho uma dependência de um banco de dados Raven. Como tal, às vezes me esqueço de começar, quando faço o desenvolvimento local. Portanto, quando um IDocumentSessionestá sendo injetado, ele requer um IDocumentStoreque falha ao instanciar porque não há RavenDb em execução. Correção: execute RavenDb 🙂