0

J'ai travaillé sur une application et parfois pendant mon codage, je reçois 500 erreurs de serveur interne sans contenu, ce qui n'est pas vraiment ce que je suppose. J'ai écrit un code pour tester la réponse d'erreur dans le contrôleur comme suit:Azure Service App [Mobileservice] - Réponse d'erreur personnalisée

[HttpGet] 
    [Route("TryCatch")] 
    public IHttpActionResult TestCatch() 
    { 
     try 
     { 
      object obj = null; 
      int i = (int) obj; 
      return Ok(); 
     } 
     catch (Exception e) 
     { 
      return InternalServerError(e); 
     } 
    } 

Lorsque je tente cette place, je ne reçois les informations relatives à l'erreur que je souhaitais. Quant à la production, tout ce que je vois est (dans le facteur) { "message": "Une erreur est survenue." } et le code d'état.

J'ai regardé autour de moi et j'ai trouvé ce que je pensais être la solution à mon problème: Internal Server Error - Azure App Service Custom Controller mais ce n'était pas le cas.

Et ajouter <httpErrors errorMode="Custom" defaultResponseMode="passThrough"> ou <customErrors mode="On"/> ou quoi que ce soit dans web.config n'aide pas non plus.

Toute aide est appréciée!

Répondre

0

Veuillez modifier le mode d'erreur personnalisé sur Désactivé au lieu de Activé.

<customErrors mode="Off"/> 

Et changer la propriété IncludeErrorDetailPolicy pour toujours dans le fichier de WebApiConfig.cs (Azure Mobile Service) ou d'un fichier Startup.cs (Azure App Mobile). Après cela, je peux obtenir le message d'exception de détail à partir de la propriété exceptionMessage.

{"message":"An error has occurred.","exceptionMessage":"Object reference not set to an instance of an object.","exceptionType":"System.NullReferenceException","stackTrace":""} 
+0

Merci monsieur! 'config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;' cette partie a résolu mon problème! –