9
votes

Débogage HTTP 500 (erreur de serveur interne) dans le service / mise en scène de la WCF

J'ai des services de WCF qui fonctionnent bien localement; Le client peut les consommer et le serveur met des données dans la DB comme prévu. Le problème est que lorsque je les déploie dans une machine de mise en scène, tout ce que je peux voir sont des erreurs HTTP 500.

Comment puis-je commencer à déboguer le problème?

Étant donné que ce n'est que sur la mise en scène et non sur ma machine de développement locale, je suppose que c'est un problème de configuration IIS quelque part.

Quand j'utilise Fiddler pour voir ce qui est envoyé et quelle est la réponse, je peux voir (comme prévu) des données de demande correctes, et seulement une 500 comme réponse - pas d'autres détails.

Je suis assez vert au wcf et à l'IIS, donc c'est probablement quelque chose d'évident; J'ai utilisé aspnet_iisreg , déployé mon fichier .svc et toutes les dlls / fichiers de construction de bac ; Peut-être que j'ai manqué quelque chose.

J'ai regardé dans les journaux IIS, mais ils sont assez jumelés; Aucune information d'erreur là-bas, non plus (ou peut-être que je cherche au mauvais endroit?)

(plus important que la résolution du problème spécifique consiste à déterminer comment voir suffisamment de détails sur les erreurs afin que je puisse travailler moi-même.)

EDIT: i Bien sûr, vérifiez les journaux d'événements en premier - et surprenant, n'a rien trouvé de mention des exceptions. Donc, je suppose que le service est au moins étant invoqué, et que quelque chose fait défaut au milieu.


0 commentaires

4 Réponses :


7
votes

Le premier endroit à rechercher des erreurs est le journal des événements sur le serveur. Il devrait y avoir des informations de base pourquoi la demande n'a pas été traitée. Si elle est liée au WCF, vous pouvez activer Tracing WCF et vérifier plus Détails dans les journaux générés.


1 commentaires

J'ai été très surpris de constater que le journal des événements n'avait rien dedans! Aucune mention des exceptions .net.



2
votes

"Erreur de serveur interne http 500" peut se produire si le mot de passe de votre compte de service a été expiré. Assurez-vous de ne pas avoir de problèmes avec un compte de service qui exécute le pool d'applications sur IIS.


0 commentaires

1
votes

Il s'avère que le serveur renvoie un 500 à cause d'un énorme jeu de données retourné; WCF met certaines limitations sur la taille des données (et des chaînes) que vous pouvez revenir, pour empêcher les attaques de DOS. J'ai résolu le problème en augmentant les limites et en diminuant la taille des données renvoyées (le cas échéant).


0 commentaires

3
votes

ajout: xxx

dans web.config sous: xxx

et voir ce qui se passe dans plus de détails. < / p>


0 commentaires