Récemment j'ai installé FluentImpossible d'accéder à la route dupliquée du contrôleur après l'installation de fluentvalidation.webapi?
J'ai deux projets - un MVC et un autre projet Web Api. Les deux ont le même contrôleur nommé en tant que contrôleur des offres. Après une installation fluide, j'ai eu un problème à savoir que la requête web api n'est pas capable de localiser n'importe quel DealsController.
Dans la méthode Gloabal asax- Application_Start de MVC:
protected void Application_Start(object sender, EventArgs e)
{
System.Web.Http.GlobalConfiguration.Configure(CompanyName.Service.WebApiConfig.Register);
CompanyName.RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);
}
Ces deux états enregistre les routes pour mvc et api web respectivement.
J'ai DealsController, qui est situé avec le même nom dans les deux projets (MVC et Web Api).
C'est le DealsController de MVC:
public class DealsController : System.Web.Mvc.Controller
{
public DealsController()
{
}
}
Ceci est Web Apis Offres contrôleur:
public class DealsController : System.Web.Http.ApiController
{
public DealsController()
{
}
[Route("api/advantage/getDeals/")]
public IHttpActionResult GetDeals([FromUri] CompanyName.Entity.Deals.Filters filter)
{
}
}
post-installation fluentvalidation.webapi de NuGet, quand je frappe la méthode de cette web api: http://localhost/api/advantage/getDeals/?cityId=2&sc=0&so=1&pn=1
Je reçois l'erreur suivante:
« message »: « Aucune ressource HTTP a été trouvé qui correspond à la demande URI « http://localhost/api/advantage/getDeals/?cityId=2&sc=0&so=1&pn=1 ». »,
« MessageDetail »: « Aucun type a été trouvé correspondant au contrôleur nommé « avantage ». »
Je ne sais pas ce qui se passe exactement après l'installation du paquet web api de validation. Je viens d'installer fluentvalidation.webapi package qui m'a donné quelques erreurs liées à cors, j'ai donc installé Microsoft.AspNet.WebApi.Cors.
Si je renommer Mon contrôleur d'API web (dealscontroller) sous un autre nom, cela fonctionne correctement.
Mais je ne comprends pas ce qui se passe exactement ici et quel autre risque cette mise à jour de fluentvalidation.webapi peut avoir dans ma solution et d'autres apis.
Lorsque vous avez 2 projets distincts, pourquoi est-ce que vous enregistrez des routes MVC et WebAPI via Application_Start de MVC? Il devrait y avoir une application_start distincte pour chaque projet. Est-ce que je manque quelque chose? Aussi comment appelez-vous votre API? –
En fait, le projet ayant une API Web est un projet de bibliothèque de classes normal. Ce n'est pas un projet Web api réel. Nous ajoutons manuellement des contrôleurs d'API Web à ce projet de bibliothèque de classes. – maverick