web-dev-qa-db-fra.com

Impossible d'afficher la page car une erreur de serveur interne s'est produite sur le serveur.

J'ai installé le site Web sur ma machine locale en utilisant IIS 7 avec succès. Mais lorsque je l'ai déployé sur un serveur actif, le message d'erreur suivant s'affiche:

"La page ne peut pas être affichée car une erreur de serveur interne s'est produite" Rien d'autre.

En utilisant le même IIS 7 en direct et configuré pour avoir Detailed errors dans le module Pages d'erreur, mais en obtenant toujours le même. Que peut être une raison?

Merci

39
progproger

Je viens de recevoir cette erreur et cela est dû à un type MIME de contenu statique en double dans le fichier web.config.

Cette erreur était renvoyée uniquement sur des fichiers statiques - par exemple, les fichiers images, css, js disaient tous cette erreur (texte seul, aucun autre code HTML ou texte dans la réponse).

La façon de déboguer ceci consiste à regarder dans la configuration Web sous un contenu statique. Ici, nous avons une extension de fichier json chargée. Cela était requis sous IIS7, mais supprime l'application s'il est utilisé sous IIS8, car json est maintenant préchargé au niveau du serveur.

    <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
        <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>

Donc, la solution est de supprimer l’une de ces entrées mimeType une à la fois pour confirmer celles qui sont nécessaires et celles qui tuent votre application!

54
mike nelson

Je pense que la meilleure approche consiste à activer les messages d'erreur détaillés via votre fichier web.config, comme ceci:

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed"></httpErrors>
    </system.webServer>
</configuration>

Après cela, vous devriez recevoir un message d'erreur plus détaillé du serveur.

Dans mon cas particulier, l'erreur plus détaillée a indiqué que ma section <defaultDocument> du fichier web.config n'était pas autorisée au niveau du dossier où j'avais placé mon web.config. "Cette section de configuration ne peut pas être utilisée sur ce chemin. Cela se produit lorsque la section est verrouillée au niveau parent. Le verrouillage est défini par défaut (overrideModeDefault =" Deny ") ou défini explicitement par une balise d'emplacement avec overrideMode =" Deny "ou l'héritage allowOverride =" false "."

25
Eric Barr

Modifiez votre web.config pour afficher les détails de l'erreur du serveur:

<system.web>
  <customErrors mode="Off" />
</system.web>

Vous devrez peut-être aussi supprimer/commenter la section suivante httpErrors

  <system.webServer>
    <httpErrors errorMode="Custom">
      <remove statusCode="404" />
      <error statusCode="404" path="/Error/Error404" responseMode="ExecuteURL" />
      <remove statusCode="500" />
      <error statusCode="500" path="/Error/Error500" responseMode="ExecuteURL" />
      <remove statusCode="403" />
      <error statusCode="403" path="/Error/Error403" responseMode="ExecuteURL" />
    </httpErrors>
  </system.webServer>

D'après mon expérience, si vous rencontrez directement une erreur de serveur, cela peut être dû à une incompatibilité de version d'Assembly.

Vérifiez ce qui est déclaré dans le fichier web.config et le ddl réel dans le projet du dossier bin.

6
Mickael LY

Je l'ai réparé. J'ai eu la section suivante in web.config:

httpErrors existingResponse="PassThrough"

Quand je l'enlève, j'ai une erreur réelle

3
progproger

il semble que cela fonctionne après avoir commenté cette ligne dans web.config

<compilation debug="true" targetFramework="4.5.2" />
1
Sulyman

Dans mon cas, configurer httpErrors et autres dans Web.config n'a pas aidé à identifier le problème.

Au lieu de cela j'ai fait:

  1. Activez "Suivi de la demande en échec" pour le site Web avec l'erreur.
  2. Configuré une trace pour les erreurs HTTP 350-999 (juste au cas où), bien que je soupçonne 500.
  3. Appelé l'URL erroné à nouveau.
  4. Visionné dans le dossier du journal ("% SystemDrive%\inetpub\logs\FailedReqLogFiles" dans mon cas).
  5. Ouvert l'un des fichiers XML dans Internet Explorer.

J'ai ensuite vu une entrée avec une information détaillée sur les exceptions. Dans mon cas c'était

\?\C:\Websites\example.com\www\web.config (592): impossible d'ajouter une entrée de collection en double de type "mimeMap" avec l'attribut de clé unique "fileExtension" défini sur ".json".

Je pouvais maintenant le résoudre et corriger l'erreur. Après cela, j'ai désactivé "Échec du suivi des demandes".

1
Uwe Keim

Je me suis retrouvé sur cette page exécutant Web Apps sur Azure.

La page ne peut pas être affichée car une erreur de serveur interne s'est produite.

Nous avons rencontré ce problème parce que nous avons applicationInitialization dans le fichier web.config.

<applicationInitialization
    doAppInitAfterRestart="true"
    skipManagedModules="true">
    <add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>

Si vous utilisez Azure, jetez un coup d'œil aux emplacements de site . Vous devez réchauffer les pages d'un emplacement intermédiaire avant de le permuter à l'emplacement de production.

1
Vishal

Pour ceux d'entre vous qui ont frappé cette entrée stackoverflow parce qu'elle occupe un rang élevé pour la phrase:

La page ne peut pas être affichée car une erreur de serveur interne s'est produite.

Dans ma situation personnelle avec ce message d'erreur exact, j'avais activé python 2.7 en pensant pouvoir utiliser certains python avec mon API .NET. Je l'avais alors message d'erreur exact lorsque j'ai tenté de déployer une version Vanilla de l'API ou de MVC à partir de visual studio pro 2013. Je déployais sur une application Web Azure Cloud.

J'espère que cela aide quelqu'un avec ma même expérience. Je n'ai même pas pensé à désactiver python jusqu'à ce que j'ai trouvé ceci suggestion .

0
SamMonk