it-swarm.com.de

Die Seite kann nicht angezeigt werden, da auf dem Server ein interner Serverfehler aufgetreten ist

Ich habe die Website mit IIS 7 erfolgreich auf meinem lokalen Computer installiert. Als ich sie jedoch auf einem Live-Server bereitgestellt habe, wurde die folgende Fehlermeldung angezeigt:

"Die Seite kann nicht angezeigt werden, da ein interner Serverfehler aufgetreten ist.".

Unter Verwendung der gleichen IIS 7 im Live-Modus und auch mit Detailed errors im Fehlerseiten-Modul, aber immer noch gleich. Was kann ein Grund sein?

Vielen Dank

39
progproger

Ich habe gerade diesen Fehler erhalten, der durch einen doppelten MIME-Typ für statischen Inhalt in der Datei web.config verursacht wurde

Dieser Fehler wurde nur für statische Dateien zurückgegeben - z. B. sagten Bilder, CSS- und JS-Dateien diesen Fehler aus (Text für sich, kein anderer HTML-Code oder Text in der Antwort).

Der Weg, dies zu debuggen, besteht darin, in der Webkonfiguration unter statischen Inhalten zu suchen. Hier haben wir eine json-Dateierweiterung geladen. Dies war auf IIS7 erforderlich, wird jedoch die App beenden, wenn sie auf IIS8 verwendet wird, da json jetzt auf Serverebene vorinstalliert ist.

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

Die Lösung besteht also darin, jeden dieser mimeType-Einträge einzeln zu entfernen, um zu bestätigen, welche erforderlich sind und welche Ihre App töten!

54
mike nelson

Ich denke, der beste erste Ansatz ist, sicherzustellen, dass detaillierte Fehlermeldungen über Ihre web.config-Datei wie folgt aktiviert werden:

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

Nachdem Sie dies getan haben, sollten Sie eine detailliertere Fehlermeldung vom Server erhalten.

In meinem speziellen Fall wies der detailliertere Fehler darauf hin, dass mein Abschnitt <defaultDocument> der Datei web.config auf der Ordnerebene, in der ich meine Datei web.config platziert hatte, nicht zulässig war. "Dieser Konfigurationsabschnitt kann auf diesem Pfad nicht verwendet werden. Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist. Die Sperre ist entweder standardmäßig (overrideModeDefault =" Deny ") oder wird explizit durch ein Standort-Tag mit overrideMode =" Deny "festgelegt "oder das Erbe allowOverride =" false "."

25
Eric Barr

Ändern Sie Ihre web.config, um die Serverfehlerdetails anzuzeigen:

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

Möglicherweise müssen Sie auch den folgenden httpErrors-Abschnitt entfernen/auskommentieren

  <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>

Wenn Sie direkt einen Serverfehler haben, kann dies meiner Erfahrung nach an einer nicht übereinstimmenden Assembly-Version liegen.

Überprüfen Sie, was in der web.config deklariert ist und die aktuelle DLL im Projekt des bin-Ordners.

6
Mickael LY

Ich habe es behoben. Ich hatte den folgenden Abschnitt in web.config:

httpErrors existingResponse="PassThrough"

Wenn ich es entferne, erhalte ich den Fehler real

3
progproger

es scheint, dass es funktioniert, nachdem ich diese Zeile in der Datei web.config kommentiert habe

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

In meinem Fall hat das Festlegen von httpErrors und dergleichen in Web.config nicht dazu beigetragen, das Problem zu identifizieren.

Stattdessen habe ich:

  1. Aktivieren Sie "Failed Request Tracing" für die Website mit dem Fehler.
  2. Konfigurierte eine Ablaufverfolgung für HTTP-Fehler 350-999 (nur für den Fall), obwohl ich 500 vermutete.
  3. Hat die fehlerhafte URL erneut aufgerufen.
  4. Wird im Protokollordner überwacht (in meinem Fall "% SystemDrive%\inetpub\logs\FailedReqLogFiles").
  5. Öffnete eine der XML-Dateien im Internet Explorer.

Ich habe dann einen Eintrag mit einer detaillierten Ausnahmeinformation gesehen. In meinem Fall war es das

\?\C:\Websites\example.com\www\web.config (592): Es kann kein doppelter Sammlungseintrag vom Typ 'mimeMap' hinzugefügt werden, wenn das eindeutige Schlüsselattribut 'fileExtension' auf '.json' festgelegt ist.

Ich konnte es jetzt beheben und den Fehler beheben. Danach habe ich "Failed Request Tracing" wieder deaktiviert.

1
Uwe Keim

Ich bin auf dieser Seite gelandet, auf der Web Apps auf Azure ausgeführt werden.

Die Seite kann nicht angezeigt werden, da ein interner Serverfehler aufgetreten ist.

Wir sind auf dieses Problem gestoßen, weil wir applicationInitialization in der web.config haben

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

Wenn Sie mit Azure arbeiten, siehe Site-Slots . Sie sollten die Seiten in einem Staging-Slot aufwärmen, bevor Sie sie in den Produktions-Slot tauschen .

1
Vishal

Für diejenigen unter Ihnen, die diesen Stackoverflow-Eintrag getroffen haben, weil er für den Satz ganz oben steht:

Die Seite kann nicht angezeigt werden, da ein interner Serverfehler aufgetreten ist.

In meiner persönlichen Situation mit genau dieser Fehlermeldung hatte ich python 2.7 aktiviert und dachte, ich könnte etwas python mit meiner .NET-API verwenden. Das hatte ich dann genaue Fehlermeldung beim Versuch, eine Vanilla-Version der API oder MVC aus Visual Studio Pro 2013 bereitzustellen. Ich stellte auf einer Azure Cloud-Webanwendung bereit.

Hoffe das hilft jedem mit meiner gleichen Erfahrung. Ich dachte nicht einmal daran, python auszuschalten, bis ich dies fand Vorschlag .

0
SamMonk