J'ai un projet hybride MVC/Web API et j'ai ajouté une implémentation simple de DelegatingHandler pour envelopper les réponses API. Cela fonctionne parfaitement, mais le gestionnaire est également invoqué pour les demandes adressées aux contrôleurs MVC. D'après ce que j'ai compris, les DelegatingHandlers ne sont invoqués que pour les routes API.
J'utilise OWIN et quelques routes d'attributs si cela a de l'importance. Le code pertinent dans Startup.cs est le suivant :
var config = new HttpConfiguration();
// ...
var debugging = HttpContext.Current == null || HttpContext.Current.IsDebuggingEnabled;
config.MessageHandlers.Add(new ApiResponseDelegatingHandler(debugging));
Ainsi, les requêtes API et web sont enveloppées et envoyées en JSON. En le commentant, le problème est résolu mais les requêtes API ne sont pas enveloppées. Le message d'erreur sur une page Web est le suivant :
Aucune ressource HTTP correspondant à l'URI de la demande 'xxx' n'a été trouvée. Non données d'itinéraire n'ont été trouvées pour cette demande.
J'ai essayé de forcer l'ordre dans lequel les routes sont enregistrées afin que les routes MVC soient ajoutées avant l'API Web, mais cela n'a pas aidé.