Après la publication d'une application Web ASP.NET, j'essaie d'héberger le site Web sur mon serveur local. Cependant, quand je le lance, cela me donne cette erreur dans mon navigateur:
Oops. 500 Internal Server Error Une erreur s'est produite lors du démarrage du fichier application.
Comment puis-je déboguer ce qu'est cette erreur? Le site Web fonctionne (avec les configurations Debug et Release) lors du démarrage avec IISExpress et "Web" dans Visual Studio.
J'utilise l'environnement de développement et j'ai déjà spécifié app.UseDeveloperExceptionPage();
.
J'ai suivi les instructions ici à déployer dans IIS.
J'ai également essayé la suggestion proposée ici (nouvelle publication avec l'option "Supprimer tous les fichiers existants avant la publication" sélectionnée). (Le PO présente une erreur légèrement différente, c'est pourquoi je pose une nouvelle question.)
J'ai passé des heures à chercher sur Internet, mais il ne semble pas y avoir beaucoup de contenu à ce sujet. Des idées?
Je suis sous Windows 7 avec ASP.NET 5 RC1.
Vous devez définir le stdoutLogEnabled=true
dans le fichier web.config pour voir l'erreur réelle qui se produit. Vous pouvez indiquer où ces fichiers sont écrits avec l'argument stdoutLogFile
; L'exemple de capture d'écran ci-dessous écrit sur stdoutLogFile=".\logs\stdout"
. (Vous devez vous assurer que le répertoire existe; l'application ne le créera pas)
Quant à l’impossibilité de trouver le fichier de configuration approprié, oui, l’environnement par défaut est la production. Il est défini explicitement pour le développement dans visual studio dans les propriétés du projet.
Update: dans AspNetCore RTM, le module s'appelle aspnetCore sous le nœud system.webServer dans web.config. De plus, comme l'a souligné @ErikE dans les commentaires, le fichier web.config est maintenant situé à la racine du projet et non sous wwwroot comme dans les versions précédentes.
Cette erreur se produit également lorsque vous essayez d'établir une connexion à une base de données au démarrage (par exemple, pour un amorçage) et qu'elle échoue sur le serveur de déploiement en raison de prédilections insuffisantes sur le serveur de base de données.
Cette erreur se produit dans plusieurs conditions. Dans ma situation, la chaîne de connexion à la base de données n'était pas correctement définie. Je l'ai corrigé dans Visual Studio 2017 comme suit:
1) Cliquez avec le bouton droit sur le projet, sélectionnez Publier, ouvrez la page Publier dans la zone principale.
2) Sélectionnez l'onglet Publier à gauche
3) Sous la section Résumé, il y a un lien "Paramètres ...". Cliquez dessus. Cela ouvre la boîte de dialogue Publier.
4) Cliquez sur l'onglet Paramètres à gauche.
5) Développez Options de publication de fichier, cochez la case "Supprimer les fichiers supplémentaires à la destination".
6) Développez Bases de données, cochez la case "Utiliser cette chaîne de connexion au moment de l'exécution" (cette chaîne était pré-remplie avec ma chaîne de connexion Azure SQL en fonction de la configuration initiale de mes options de publication).
7) Développez Migrations Entity Framework, cochez la case "Appliquer cette migration à la publication" (Encore une fois, la chaîne de connexion était pré-remplie)
8) Cliquez sur Enregistrer
9) publier
10) Croisez vos doigts