Déclarer les WebApi dans un projet Web avec OWIN

Récemment, dans un projet, un collègue a eu un problème sur une middleware OWIN. Il arrivait à capturer le message lors de la requête mais impossible d’avoir quelques choses au niveau de la réponse.

Cela venait du fait que les Web Api n’étaient pas déclarer avec le system OWIN. A cause de cela, le middelware était bien appelé dans le pipeline de requête mais il semblerait qu’il n’était pas bien situé par rapport au middleware WebApi. (l’article ici explique comment sont intégrés les middleware OWIN dans le pipeline intégré de IIS)
Nous avions :
20141121_1
au lieu de :
20141121_2

Pour se placer complètement dans le mode OWIN il faut faire de la manière suivante :

Tout d’abord, rajouter une fichier (Startup.WebApi) de classe dans le répertoire App_Start :

image_thumb[4]

avec le corps suivant :

 
public partial class Startup
{ 
    private void ConfigureApi(IAppBuilder app) 
    { 
        var config = new HttpConfiguration(); 
        WebApiConfig.Register(config); 
        app.UseWebApi(config); 
    } 
} 

 

Ensuite dans le fichier Global.asax, commenter ou supprimer la ligne :

 
    GlobalConfiguration.Configure(WebApiConfig.Register); 

 

Enfin dans le fichier Startup.cs à la racine de votre projet, changer la méthode Configure pour qu’elle initialise les Api:

 
public void Configuration(IAppBuilder app) 
{ 
    ConfigureAuth(app); ConfigureApi(app); 
} 

voila à partir de maintenant vous pouvez utiliser app.use() au bon niveau dans votre pipeline Owin pour insérer de nouveaux middlewares.

Advertisement
This entry was posted in ASP.NEt, Français and tagged , , . Bookmark the permalink.

1 Response to Déclarer les WebApi dans un projet Web avec OWIN

  1. Pingback: Azure Event Hub & Stream Analytics–Part 1 : publier des évènements | Jérémie – an other BizTalker

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s