Comment Obtenir les Détails de l'Erreur d'une ASP.NET 5 application déployée sur les Sites web Azure?
J'ai un ASP.NET 5 solution avec un site web et de plusieurs bibliothèques de projet. Je suis en utilisant MVC 6 et Entity Framework 7. Localement, l'application fonctionne bien et jusqu'à aujourd'hui, il travaille également sur Azure déployé comme un Site web Azure.
Mais aujourd'hui, après la dernière déploiement sur Azure j'ai eu une erreur 500 de ce genre sur le démarrage (toujours fonctionne bien en local):
J'ai essayé d'obtenir plus de détails par :
- à l'aide du middleware diagnostics
- l'ajout de la customError /httpError paramètres dans le web.fichier de configuration
- le téléchargement du DetailedError page générée
Il semble que l'erreur/exception qui se passe lors du Démarrage et de configuration de l'étape, mais je suis encore en train de la page d'erreur générique sans plus de détails. Même la version générée sur le serveur (DetailedErrors dossier), j'ai obtenu ceci:
J'ai activé le suivi des demandes ayant Échoué, mais toujours pas d'informations utiles:
Même si j'ai démonter le code dans le Démarrage/Configurer et ajouter un try/catch comme l'a suggéré, j'ai eu la même erreur sans détails. Il semble être une configuration/compilation de la question, mais difficile à déboguer sans aucune information.
- Des nouvelles à ce sujet dans la bêta 5?
Vous devez vous connecter pour publier un commentaire.
RC1 (comme de beta8, peut-être), il faut apparemment utiliser:
.. qui apparemment ne fonctionne que si
app.Properties["host.AppMode"]
est"development"
.Mais cela n'a pas fonctionné pour moi. Le message d'erreur que je recevais était spécifiquement "Une erreur s'est produite lors du démarrage de l'application", j'ai constaté qu'aucune des configurations résoudre ce parce que l'erreur est survenue avant l'configurations exécuter.
En quelque sorte, la publier le dossier cible doit avoir été corrompu lors de publier parce que je trouve que suppression de l'ensemble du répertoire de déploiement et de re-publier le problème est résolu.
Sinon, voici la référence:
http://docs.asp.net/en/latest/fundamentals/diagnostics.htmlhttps://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling
Les erreurs qui se produisent lors du démarrage dans une ASPNET5 application sont vraiment difficiles à dépister lors de l'exécution de l'application dans Azure (au moins avec la beta 3). Espérons qu'ils trouvent un moyen d'améliorer l'expérience. J'ai dû recourir à de décapage mon démarrage en bas de l'os à nu, puis en ajoutant le code ligne par ligne jusqu'à la défaillance qui s'est passé (dans mon cas, c'était un manque variable d'environnement).
J'ai aussi utilisé ce type de code (uniquement pour le débogage) ce qui pourrait aider en fonction de l'endroit où l'erreur se passe:
Mise à jour 10/27/2016 beaucoup de choses ont changé depuis ma réponse originale à cette question. La dernière directive est posté ici:
https://docs.asp.net/en/latest/fundamentals/hosting.html
Ajoutez:
.CaptureStartupErrors(vrai) et .UseSetting(WebHostDefaults.DetailedErrorsKey, "true") sur votre WebHostBuilder comme suit:
CaptureStartupErrors
etdetailedErrors
l'a fait pour moi, merci pour la mise à jour!Vous devez définir les paramètres de l'application de la propriété ASPNET_DETAILED_ERRORS à vrai dans web.config fichier.
Exemple de mon édité web.fichier de configuration:
J'ai vécu exactement la même erreur avec une web application qui s'exécute dnx-clr-win-x64.1.0.0-rc1-update1. J'ai fait le déploiement directement à partir de Visual Studio 2015 Entreprise de mise à Jour 1. J'ai trouvé que le site était de travailler à chaque fois que j'ai fait le premier déploiement sur une nouvelle application web. À partir de la deuxième déploiement (même lors du déploiement de l'exacte même contenu), j'ai commencé à voir Internal Server Error 500. Qui m'a amené à la solution suivante:
Permettant de "Supprimer des fichiers supplémentaires à destination" dans l'assistant d'édition de Visual Studio, il fixe pour moi.
J'ai eu le même problème et a passé beaucoup de temps à essayer de creuser dans les journaux d'erreur, etc. (toutes les autres solutions données ci-dessus). Aucun d'entre eux de donner la moindre idée de ce qui va mal.
Ce que j'ai fait qui m'a aidé à enfin voir l'erreur a été de simplement essayer de publier sur un serveur IIS local (après tout azure web-app fonctionne votre dnx sur IIS interne).
J'ai pu alors voir immédiatement qu'il y a erreur quand IIS essaie de compiler le source. (dans mon cas était quelque mal formé package nuget).
Donc en bref:
Recréer ce qui se passe sur azure web-app par la publication de IIS local.
Créer un
web.config
à l'intérieur de votrewwwroot
dossier avec ce contenu :Avez-vous vérifié dans le eventlog.xml fichier? C'est dans le D:\home\LogFiles répertoire. Vous pouvez les consulter à partir de votre application Kudu site, ou d'utiliser les Sites web Azure de l'Observateur d'Événements extension.
Avez-vous essayez d'utiliser de Débogage à Distance l'Azur Webapp ? Il est probable qu'une exception qui se passe qui est responsable de cela et si vous regardez votre fenêtre de SORTIE de DÉBOGAGE, vous pouvez être en mesure de voir les exceptions qui se passe et ensuite changer les paramètres Visual Studio à la pause sur cette exception que pour voir où ça se passe. vérifier cet article pour comprendre comment débogage à distance - http://blogs.msdn.com/b/webdev/archive/2013/11/05/remote-debugging-a-window-azure-web-site-with-visual-studio-2013.aspx
Dans mon cas avec beta5, les erreurs personnalisées dans le web.config n'a pas aider, IIS local était très bien, et l'ajout d'un gestionnaire d'exception n'a pas afficher quoi que ce soit. La seule chose qui a fonctionné a été de nuke approot et le redéployer.
Dans le site Web de l'application paramètres de l'Application, dans la section paramètres de l'Application, ajoutez (ou modifiez la valeur de) Hébergement:Environnement à Développement. Ensuite, vous obtenez la même page d'erreur comme dans votre développement local. Dans mon Démarrage.cs, j'ai l'ordinaire méthode Configure() avec le code suivant: (toujours dans MVC 1.0 RC1-finale)
Espérons que cette aide!