J'essaye de déployer une application ASP.NET. J'ai déployé le site sur IIS, mais lorsque je le visite avec le navigateur, cela me montre ceci:
erreur du serveur
500 - Erreur de serveur interne.
Il y a un problème avec la ressource que vous recherchez et elle ne peut pas être affichée.
Après avoir bidouillé avec le web.config, j'ai obtenu:
La page ne peut pas être affichée car une erreur de serveur interne s'est produite.
Comment puis-je voir le problème réel derrière cette erreur de serveur?
asp.net
iis
error-handling
Jacob Jedryszek
la source
la source
Réponses:
Tout d'abord, vous devez activer et afficher les erreurs détaillées de vos messages Web, car il s'agit d'un message général sans donner d'informations sur ce qui se passe réellement pour des raisons de sécurité.
Avec l'erreur détaillée, vous pouvez localiser le vrai problème ici.
De plus, si vous pouvez exécuter le navigateur sur le serveur , vous obtenez des détails sur l'erreur, car le serveur reconnaît que vous êtes local et vous l'affiche. Ou si vous pouvez lire le journal du serveur à l'aide de l'Observateur d'événements, vous voyez également les détails de votre erreur.
Sur IIS 6
Sur IIS 7
Remarque: vous pouvez éviter le Debug = true . Il vous suffit de fermer les erreurs personnalisées pendant un certain temps et d'obtenir la page d'erreur détaillée.
Référence: Activation de la messagerie d'erreur personnalisée Windows dans les articles d'aide de Go Daddy .
En outre, cela peut aider: Comment activer les messages d'erreur détaillés (à partir d'IIS).
la source
run the browser on the server
travaillé pour moi .. merci frèreJe tirais mes cheveux sur ce problème. S'assurer que l'entrée suivante était dans le
web.config
fichier racine l'a corrigé pour moi:N'oubliez pas que vous devez l'ajouter aux éléments XML existants , s'ils sont déjà là. Vous ne pouvez pas simplement ajouter à la fin du fichier, car vous ne pouvez pas avoir plusieurs copies d'un élément.
la source
Pour moi, le code suivant dans le web.config était le coupable. Lorsque je l'ai supprimé, le site Web fonctionnait bien.
la source
J'ai finalement résolu cette erreur "500 Internal server" lors du déploiement de l'application ASP.NET MVC 3.0 sur l'hébergement mutualisé godaddy.ocm.
il y avait en quelque sorte des divergences sur la version des fichiers DLL référencés et la version mentionnée dans le fichier
web.config
.J'ai essayé toutes les options mentionnées dans divers forums. Rien n'a aidé, bien que tout le monde ait suggéré le même type de solution, mais cela n'a pas fonctionné dans mon scénario. Enfin après m'être cogné la tête pendant deux jours. J'ai décidé de supprimer toutes les références de fichiers DLL et de supprimer web.cofig (faire une copie locale) du projet et de laisser l'application lancer l'erreur, puis d'ajouter les fichiers DLL un par un en faisant une copie dans local = true.
Une fois que tous les fichiers DLL ont été ajoutés, j'ai créé une nouvelle application ASP.NET MVC et copié le web.config de la nouvelle application dans mon application réelle. Donc, mon application actuelle a maintenant un nouveau web.config, puis j'ai copié la chaîne de connexion et d'autres références à partir de la copie locale de web.config que j'ai enregistrée.
Je viens de compiler l'application et de publier dans un dossier local et FTP le dossier publié sur goDaddy.
Cela a fonctionné et finalement mon problème a été résolu.
la source
Dans mon cas, j'ai mis une erreur dans mon
web.config
dossier. La clé d'application a en quelque sorte été placée sous la balise <appSettings>. Mais je me demande pourquoi il n'affiche pas d'erreur de configuration. L'erreur 500 est trop générique pour étudier le problème.la source
Ma première tentative de publier puis d'exécuter un site très simple ne servant que du HTML a produit "La page ne peut pas être affichée car une erreur de serveur interne s'est produite."
Le problème: j'avais le site défini sur .NET 3.5 dans Visual Studio (clic droit sur le projet de site Web -> Pages de propriétés -> Générer), mais le site Web dans Azure était configuré en tant que .NET 4.0. Oups! Je l'ai changé en 3,5 dans Azure et cela a fonctionné.
la source
En plus des autres suggestions, assurez-vous de changer l'
existingResponse
attribut duhttpErrors
nœud enAuto
fromReplace
ou de supprimer complètement cette propriété.la source
IIS signale également le code d'état 500 sans aucune indication du journal des événements si les autorisations sont insuffisantes sur le répertoire de base physique (c'est-à-dire que IIS_IUSRS n'a pas d'accès).
la source
Dans mon cas, je remplace ce code:
Puis changez le framework 3.5 en framework 4. Cela montre mon erreur détaillée. Je supprime le code dans:
Cela a résolu mon problème.
la source
Pour IIS 8, il y a une étape supplémentaire à faire autre que la modification de customErrors = Off pour afficher le contenu de l'erreur.
Raul a répondu à la question dans ce lien Désactiver les erreurs personnalisées IIS8 par Raul
la source
Votre fichier web.config est probablement erroné ou il manque une balise. J'ai résolu mon problème en utilisant les bonnes balises de configuration pour .NET 4.
la source
J'ai réalisé que les autorisations pour les fichiers et dossiers de votre serveur importaient également. J'ai téléchargé mes fichiers à partir d'un système d'exploitation Linux et les autorisations sont généralement limitées pour la lecture et l'écriture. Ainsi, lors du téléchargement, les autorisations sont toujours les mêmes que sur la machine locale.
J'ai eu la même erreur et je viens de modifier les autorisations pour le dossier que j'avais téléchargé et l'erreur a disparu.
J'espère que ça aide quelqu'un.
la source
J'ai été confronté au même problème, mais maintenant mon problème a été résolu. Utilisez toujours dans cet hébergement cela fonctionne.
Je vous recommanderai également à tous de faire les modifications que vous souhaitez apporter à votre fichier web.config. Veuillez le faire un par un et tester le même sur le domaine en direct afin que vous puissiez trouver le problème exact ou les fonctionnalités que votre fournisseur d'hébergement ne vous permet pas d'utiliser.
la source
Si vous utilisez un HttpHandler personnalisé (c'est-à-dire implémentant
IHttpModule
), assurez-vous d'inspecter les appels à saError
méthode.Vous pouvez demander à votre gestionnaire de lancer le réel
HttpExceptions
(qui a uneMessage
propriété utile ) pendant le débogage local comme ceci:Assurez-vous également d'inspecter les exceptions
InnerException
.la source
Une erreur de serveur interne 500 peut survenir pour plusieurs raisons. La première raison pourrait être que le fichier web.config n'est pas correctement créé, cela signifie que vous avez manqué une balise dans le fichier web.config. Deuxièmement, cette erreur peut être due à un problème de code. Pour vérifier quel composant de l'application Web est à l'origine de cette erreur, vous pouvez vérifier le paramètre de l'application dans le fichier web.config. Le détail de la résolution et du traçage de l'erreur de serveur interne 500 avec diagramme est donné ici:
la source
Assurez-vous que votre compte utilise IIS 7. Pour plus d'informations, consultez Personnalisation des paramètres IIS sur votre compte d'hébergement Windows. Suivez les instructions de la section Modification du mode de pipeline sur votre compte d'hébergement Windows IIS 7. Sélectionnez Mode pipeline intégré. Dans la section Références de projet, définissez Copier local sur True pour les assemblys suivants:
Ajoutez les assemblys suivants à votre projet, puis définissez Copy Local sur True:
la source
Parfois, la raison peut être que l'un de vos assemblys .dll n'est pas enregistré correctement sur le serveur.
Par exemple, vous pouvez exécuter avec succès une application Web C # Excel sur votre ordinateur local avec Office installé, tout en obtenant l'erreur 500 lors du déploiement du serveur, car aucune suite Office n'est installée sur le serveur et vous obtenez ainsi l'erreur de serveur.
la source
Pour ceux qui ont cette possibilité (hébergement VPS et non hébergement Web):
Connectez-vous à votre serveur d'hébergement via Remote Desktop. Ouvrez le navigateur Web à partir de votre bureau distant et vous verrez la description détaillée de l'erreur.
Vous n'avez pas besoin de modifier web.config ou d'exposer des détails à quiconque.
la source
Si vous utilisez IIS 8.5, il se peut que vous deviez modifier le paramètre ID ApplicationPool d' ApplicationPoolId en NetworkService
Cliquez avec le bouton droit sur le pool d'applications en question, cliquez sur "Paramètres avancés", puis faites défiler jusqu'à ID - il sera probablement défini sur ApplicationPoolIdentity . Cliquez sur le bouton (..) et sélectionnez NetworkService dans la liste déroulante à la place.
Assurez-vous également que s'il s'agit d'une application .NET 2.0, vous ne référencez pas l'infrastructure 4.0 dans votre pool d'applications.
la source
Avant de modifier le
web.config
fichier, je vérifierais que la.NET Framework
version que vous utilisez est exactement (je le pense, 4.5! = 4.5.2) la même par rapport à vosGoDaddy
paramètres (paramètres ASP.Net dans votrePlesk panel
). Cela devrait automatiquement changer votre fichier web.config vers le bon framework.Notez également que pour le moment (janvier 16),
GoDaddy
fonctionne avecASP.Net 3.5
et4.5.2
. Pour l'utiliser4.5.2
avec Visual Studio, il doit être2012
ou plus récent, et sinon 2015, vous devez télécharger et installer le package de développement .NET Framework 4.5.2.Si cela ne fonctionne toujours pas, alors oui, votre prochaine étape devrait être d'activer un rapport d'erreur détaillé afin que vous puissiez le déboguer.
la source
J'ai récemment eu le même problème, l'espace disque était plein sur le serveur. Le fait de libérer de l'espace a résolu le problème.
la source
Essayez de compiler en mode débogage (dans Visual Studio). Si vous êtes en mode Release, de nombreuses erreurs de réécriture d'URL ne seront pas disponibles.
L'image montre la liste déroulante de sélection de débogage dans Visual Studio
la source