it-swarm.com.de

CustomErrors-Modus = "Aus"

Ich erhalte jedes Mal eine Fehlermeldung, wenn ich meine Webapp beim Provider hochlade. Aufgrund des Modus customErrors sehe ich nur die Standardnachricht "Laufzeitfehler", die mich anweist, customErrors zu deaktivieren, um mehr über den Fehler anzuzeigen.

Verzweifelt habe ich meine web.config so eingestellt:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

und trotzdem bekomme ich nur die blöde Remote-Fehlerseite ohne nützliche Informationen ... Was kann ich noch tun, um customErrors auszuschalten!?

234
Radu094

Das hat mich in den letzten Tagen wahnsinnig gemacht und konnte es nicht umgehen, aber ich habe es endlich herausgefunden:

In meiner machine.config-Datei hatte ich einen Eintrag unter <system.web>:

<deployment retail="true" />

Dies scheint alle anderen customError-Einstellungen zu überschreiben, die Sie in einer Datei web.config angegeben haben. Setzen Sie daher den obigen Eintrag auf:

<deployment retail="false" />

bedeutet nun, dass ich noch einmal die detaillierten Fehlermeldungen sehen kann, die ich brauche.

Der machine.config befindet sich unter

32-Bit

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64-Bit

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

Hoffe, das hilft jemandem da draußen und spart ein paar Stunden Haare ziehen.

151
Ronan

Bei "Off" wird die Groß- und Kleinschreibung beachtet.

Prüfen Sie, ob das "O" in Ihrer Datei "web.config" in Großbuchstaben enthalten ist.

126
juan

Um dieser Frage mehr Situationen hinzuzufügen (weil ich genau dort nach dem gleichen Problem gesucht habe), hier meine Antwort:

In meinem Fall habe ich den Text aus dem generischen Fehler ausgeschnitten/eingefügt, wenn er sehen will, was falsch ist 

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

Das hätte also behoben sein müssen, aber natürlich nicht! Mein Problem war, dass ein <system.web> -Knoten einige Zeilen darüber (vor einem Kompilierungs- und Authentifizierungsknoten) und ein schließender Tag </system.web> ein paar Zeilen darunter war. Sobald ich das korrigiert habe, wurde das Problem gelöst. Was ich hätte tun sollen, ist nur diese Zeile zu kopieren/einfügen:

<customErrors mode="Off"/>

Dies ist aus den Annalen dummer Dinge, die ich immer und immer wieder tue, im Kapitel "Kopieren Sie Ihren Weg zur Vernichtung".

47
Cyberherbalist

Für Sharepoint 2010-Anwendungen sollten Sie auch C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config bearbeiten und <customErrors mode="Off" /> definieren.

10
Rubens Farias

Die eine Antwort, die tatsächlich funktioniert hat, um das Problem zu beheben, fand ich hier: https://stackoverflow.com/a/18938991/550975

Füge dies einfach zu deinem web.config hinzu:

<configuration>  
  <system.webServer>  
    <httpErrors existingResponse="PassThrough"/>  
  </system.webServer>  
<configuration>
7
Serj Sagan

Weitere Informationen zum Fehler finden Sie im Allgemeinen in der Ereignisanzeige, wenn Sie darauf zugreifen können. Ihr Provider hat möglicherweise auch verhindert, dass benutzerdefinierte Fehler angezeigt werden, indem Sie ihn entweder in der machine.config überschreiben oder das Attribut retail auf true setzen ( http://msdn.Microsoft.com/de-de/library/ ms228298 (VS.80) .aspx ). 

6
digitaljeebus

Ich habe die meisten der hier beschriebenen Sachen ausprobiert. Ich habe VWD verwendet und die Standarddatei web.config enthielt:

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

Ich habe mode = "RemoteOnly" in mode = "Off" geändert. Immer noch keine Freude . Ich habe dann IIS Manager, Eigenschaften, ASP.Net-Registerkarte, Konfiguration bearbeiten verwendet und dann die Registerkarte CustomeErrors ausgewählt. Dies zeigte immer noch RemoteOnly. Ich habe dies zu Off geändert und endlich konnte ich die detaillierten Fehlermeldungen sehen.

Als ich die web.config inspizierte, sah ich, dass es in der system.web zwei CustomErrors-Knoten gab. und ich habe gerade bemerkt, dass der zweite Eintrag (der, den ich geändert habe, in einem Kommentar enthalten war). Versuchen Sie daher nicht, den Editor zu verwenden, um web.config auf einem Remote-Server zu überprüfen.

Wenn Sie jedoch die Konfigurationsanweisungen für IIS edit verwenden, werden Fehler in der web.config-Datei angezeigt. Dann können Sie alle Antworten ausschließen, die besagen, dass in Ihrer web.config ein XML-Syntaxfehler vorliegt.

6
Philip Madams

Wenn Sie diese Seite immer noch erhalten, ist es wahrscheinlich, dass sie explodiert, bevor Sie an der Web.Config vorbei kommen

Stellen Sie sicher, dass ASP.Net über die erforderlichen Berechtigungen für die Ordner .Net Framework, die IIS Metabase usw.) verfügt. Können Sie auf irgendeine Weise überprüfen, ob ASP.Net ordnungsgemäß installiert und zugeordnet ist? in IIS richtig?

Edit: Nach Gregs Kommentar ist es mir aufgefallen, dass ich davon ausgegangen bin, dass das, was Sie gepostet haben, Ihre gesamte sehr minimale web.config war. Wenn ja, kannst du die gesamte web.config posten?

5
Nick Craver

Mein Problem war, dass ich dies in meiner web.config definiert hatte

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="404" />
  <remove statusCode="500" />
  <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
  <error statusCode="500" responseMode="ExecuteURL" path="/Error/Internal" />
</httpErrors>
5
Dongolo Jeno

Ich hatte auch dieses Problem, aber bei der Verwendung von Apache und mod_mono. Für alle anderen Personen in dieser Situation müssen Sie Apache nach dem Ändern von web.config erneut starten, um das Lesen der neuen Version zu erzwingen.

5
mikel

Was ich beim Hosting meiner Web-App herausgefunden habe, ist der Code, den Sie auf Ihrer lokalen Maschine entwickelt haben, eine höhere Version als das Hosting-Unternehmen Ihnen bietet. Wenn Sie über Administratorrechte verfügen, können Sie möglicherweise die Unterstützung für die Microsoft ASP.NET-Version unter der Webhosting-Einstellung ändern 

2
Joseph D'Souza

Wir sind auch auf diesen Fehler gestoßen und in unserem Fall war es so, dass der Benutzer des Anwendungspools keine Berechtigungen mehr für die Datei web.config hatte. Der Grund, warum er seine Berechtigungen verlor (vorher war alles in Ordnung) war, dass wir eine Sicherungskopie der Site in einer rar-Datei hatten und ich eine Sicherungsversion der web.config aus der rar-Datei in die Website gezogen habe. Dies scheint alle Berechtigungen für die Datei web.config entfernt zu haben, außer für mich, den angemeldeten Benutzer. 

Wir haben eine Weile gebraucht, um das herauszufinden, weil ich die Berechtigungen auf Ordnerebene wiederholt geprüft habe, aber niemals auf Dateiebene. 

2
Ghlouw

Wir hatten dieses Problem und es lag daran, dass der Benutzer IIS keinen Zugriff auf die Computerkonfiguration auf dem Webserver hatte.

2
Tjaart

Wenn Sie die MVC-Vorschau 4 verwenden, kann dies auftreten, weil Sie das HandleErrorAttribute verwenden. Das Verhalten wurde in 5 geändert, so dass es keine Ausnahmen behandelt, wenn Sie benutzerdefinierte Fehler deaktivieren.

1
Will

Ich habe mich gerade mit einem ähnlichen Problem befasst. In meinem Fall war die Standard-Site asp.net Version 1.1, während ich versuchte, eine 2.0-Web-App zu starten. Der Fehler war ziemlich trivial, aber es war nicht sofort klar, warum die benutzerdefinierten Fehler nicht verschwinden würden, und die Laufzeitumgebung wurde nie in das Ereignisprotokoll geschrieben. Offensichtliche Korrektur bestand darin, dass sie mit der Version auf der Registerkarte Asp.Net von IIS übereinstimmte.

1
Roman

Versuchen Sie, die Anwendung neu zu starten (Erstellen einer app_offline.htm, anstatt sie zu löschen), und wenn Sie immer noch dieselbe Fehlermeldung erhalten, stellen Sie sicher, dass Sie customErrors nur einmal in der web.config deklariert haben. Fehler in der web.config können sich auf die Anwendung auswirken.

1
Adam Vigh

Hast du einen speziellen Charakter wie æøå in deiner web.config? Stellen Sie in diesem Fall sicher, dass die Kodierung auf utf-8 eingestellt ist.

1
Frederik Vig

Sie können auch versuchen, die Website in einem Browser auf dem Server-Computer aufzurufen. Ich mache nicht viel ASP.NET-Entwicklung, aber ich erinnere mich an die benutzerdefinierte Fehler-Sache hat eine Einstellung, nur den vollständigen Fehlertext auf dem Server anzuzeigen, als Sicherheitsmaßnahme.

1
Neil Barnwell

Ich hatte das gleiche Problem, fand aber eine andere Lösung. 

-

Was ich getan habe, war, dass ich Erweiterte Einstellungen für den Anwendungspool in IIS Manager geöffnet habe.

Dort setze ich Enable 32-Bit Applications to True

1
Levi Johansen

Ist diese Web-App unter anderen Apps im Verzeichnisbaum einer Website enthalten? Überprüfen Sie ggf. die übergeordneten web.config-Dateien auf andere Einstellungen. Stellen Sie außerdem sicher, dass Ihr Verzeichnis als Anwendungsverzeichnis in IIS festgelegt ist.

1
Greg Hurlman

Das ist wirklich seltsam. Ich habe diesen Fehler erhalten und nach dem Neustart meines Servers ist er verschwunden.

0
Ustin

Ich hatte das gleiche Problem und die Ursache war, dass IIS ASP.NET 1.1 ausgeführt hat und die Site .NET 2.0 benötigt.

Die Fehlermeldung hat mich nur stundenlang aus der Bahn geworfen.

0
SimonHL

Nachdem ich alle Antworten hier ausprobiert hatte, stellte sich heraus, dass meine Application_Error-Methode folgendes hatte:

Server.ClearError();
Response.Redirect("/Home/Error");

Durch das Entfernen dieser Zeilen und die Einstellung wurde das Problem behoben. (Der Client wurde trotzdem mit customErrors="On" zur Fehlerseite weitergeleitet).

0
EM0

Für mich war es ein Fehler höher in der web.config über dem system.web.

da die Datei nicht existiert, wurde an dieser Stelle ein Fehler ausgegeben. Da es noch nicht zum System.Web-Abschnitt gelangt war, verwendete es die Server-Standardeinstellung für CUstomErrors (On).

0
andrew wisener

Stellen Sie sicher, dass Sie .__ hinzufügen. direkt nach dem system.web

Ich habe es gegen Ende des Knotens gesetzt und funktionierte nicht. 

0
Nayef

Wenn Sie eine Konfigurationsumwandlung durchführen, müssen Sie möglicherweise auch die folgende Zeile aus der entsprechenden Datei web.config entfernen.

<compilation xdt:Transform="RemoveAttributes(debug)" />
0
Rich Hildebrand

Stellen Sie außerdem sicher, dass Sie web.config und nicht website.config wie ich bearbeiten.

0

Ich hatte das gleiche Problem, und ich ging das Anwendungsprotokoll der Ereignisanzeige durch, in dem klar erwähnt wird, aufgrund welcher Ausnahme dies passiert ist. In meinem Fall war Ausnahme wie folgt ...

Ausnahmeinformationen:

Exception type: HttpException 
Exception message: The target principal name is incorrect.  Cannot generate SSPI context.
at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

The target principal name is incorrect.  Cannot generate SSPI context.

Ich habe gerade mein Passwort im Anwendungspool aktualisiert und es funktioniert für mich.

0
Niraj Trivedi

In einigen Fällen ist es auch möglich, dass web.config nicht korrekt formatiert ist. In diesem Fall müssen Sie es Zeile für Zeile durchlaufen, bevor es funktioniert. Oft sind hier Umschreibungsregeln die Ursache.

0
chriskuffner