ASP WebApi – The controller for path […] was not found or does not implement IController

15 Sep 2016

Après avoir implémenté un contrôleur WebApi dans un projet ASP MVC existant, je reçois l’erreur 404 suivant. L’erreru est assez explicite, me demandant de vérifier que le contrôleur qui a été appelé n’implémente par IController. Evident si c’est un controller standard mais dans ce cas précis il s’agit d’un contrôleur WebApi.

Par défaut, la route utilisé par le contrôleur WebApi correspond aux routes utilisées par les contrôleurs classiques, c’est à dire /api/get, si vous jetez un coup d’oeil dans votre fichier RouteConfig.cs, la config correspond …

Le problème vient du fait que selon la configuration de base d’une application ASP MVC, les routes pour les contrôleurs normaux sont enregistrées avant les routes pour les contrôleurs WebApi. Vous pouvez d’ailleurs le remarquer dans le fichier Global.asax.cs

Vous l’aurez compris, pour remédier et corriger le problème, il suffit de monter la config WebApi plus haut que la config qui concerne les contrôleurs ;