2015-07-15 5 views
2

Je ne reçois pas le contenu de réponse attendu sur le client lorsque la ressource renvoie BadRequest.API Web ASP.NET 2 Contenu BadRequest

[HttpGet] 
[Route("Test", Name = "Test")] 
public async Task<IHttpActionResult> Test() 
{ 
    var result = BadRequest("test"); 
    return result; 
} 

Sur le client (voir l'exemple ci-dessous hurl.it) Je reçois simplement la chaîne Bad Request dans le corps: Bad Request string in content

La réponse sur le serveur semble être bien: Response server side

Cela fonctionnait bien à un certain point (renvoyant des chaînes ou ModelState dans le contenu) et récemment nous avons remarqué ce problème. Je ne peux pas penser à un changement récent sur le serveur qui pourrait le causer.

Il ne fonctionne ni localement ni lorsqu'il est déployé sur le serveur.

Il peut être reproduit dans n'importe quel ApiController du projet.

return Ok ("test"); fonctionne comme prévu.

Est-ce que quelqu'un sait ce qui peut causer ce problème?

Merci!

+0

Recevez-vous une réponse formatée json/xml correcte? Que se passe-t-il si vous obtenez une demande valide? Comment cela se passe-t-il? S'il vous plaît confirmer, vous êtes vraiment l'intention de faire des demandes autorisées? – CularBytes

+0

C'est exactement le problème que j'ai essayé de décrire: au lieu du contenu attendu, dans n'importe quel format (dans l'exemple que j'ai donné - string _test_), je reçois la chaîne _Bad Request_. En ce qui concerne la réception de 200 OK, comme décrit, je peux voir le contenu attendu (la chaîne _test_). – paschka76

+0

Eh bien monsieur, vous avez un très bon bug qui devrait être corrigé :), Quelques options que vous avez est: Essayez avec un projet vide, voir si cela fonctionne. Si cela fonctionne, alors vous savez qu'il s'agit de votre projet et non de votre serveur IIS local ou de votre serveur (très improbable, mais donnez-vous un coup de feu ...Essayez différents en-têtes (application/json), sans authentification. C'est tout ce que j'ai, bonne chance. – CularBytes

Répondre

1

Il est difficile de dire ce qui ne va pas.

Les choses que vous pouvez vérifier:

  • est peut-être votre erreur provoquée par la demande d'authentification non valide
  • Essayez avec un nouveau projet, si cela fait la différence alors vous savez qu'il est votre projet et il n'y a pas d'erreurs causées par votre IIS local et serveur (très peu probable, mais on ne sait jamais.
  • Vérifiez votre dossier App_Start, contenant le BundleConfig, RouteConfig, FilterConfig, WebApiConfig`. peut-être que certains paramètres personnalisés ont causé pour vous donner une mauvaise erreur de requête alors qu'il pourrait être un pas trouvé e rror.
  • Vérifiez que ce n'est que sur demande Get ou sur d'autres, peut être provoquée par différentes versions d'assemblys.
  • Vérifiez si vous avez seulement le problème avec 400, ou est-ce que 401, 500 donne le même problème?
  • Vérifiez votre fichier Web.Config, ils peuvent contenir <CustomErrors> qui pourrait rediriger ou jeter ses propres erreurs. Après quelques commentaires, les erreurs personnalisées semblaient être le problème.