Nancy: Die verwirrende Fehlermeldung beim Internal Server Error

Erstellt am 30. Okt. 2016  ·  5Kommentare  ·  Quelle: NancyFx/Nancy

Hallo, ich habe eher eine Bitte als einen Fehlerbericht.
Als der Code eine Ausnahme ausgelöst hat, habe ich diese Seite erhalten.

screen shot 2016-10-30 at 13 49 16

Obwohl ich versucht habe, die Werte festzulegen, konnte ich weder die statischen Eigenschaften mit dem Namen TraceConfiguration.DisplayErrroTraces noch die Methode mit dem Namen environment#Tracing finden.
Ich denke, diese Funktionen sind in Nancy 2.0 nicht mehr verfügbar, oder?

Ich habe ein paar Minuten später bemerkt, dass der folgende Code funktioniert.

    public class Bootstrapper : Nancy.DefaultNancyBootstrapper 
    {
        public override void Configure(INancyEnvironment environment)
        {
            var config = new Nancy.TraceConfiguration(enabled: false, displayErrorTraces: true);
            environment.AddValue(config);
        }
    }

Ich denke, es ist besser, das Beispiel wie oben zu zeigen, Wie denken Sie?

Hilfreichster Kommentar

Richtig, mir fehlte eine using-Direktive, volle Klasse für andere Leute, falls sie das gleiche Problem haben:

using Nancy;
using Nancy.Bootstrapper;
using Nancy.TinyIoc;
using Nancy.Configuration;

public class CustomBootstrapper : DefaultNancyBootstrapper
{
        public override void Configure(INancyEnvironment environment)
        {
            environment.Tracing(enabled: false, displayErrorTraces: true);
        }
}

Danke schön!

Alle 5 Kommentare

Hallo,

Danke, dass Sie uns das mitteilen. Ich denke, die Fehlermeldung ist ziemlich einfach, insbesondere der Satz ist sehr explizit darüber, was zu tun ist

  1. Überschreiben Sie die Configure -Methode von Boostrapper
  2. Umgebung aufrufen.Tracing (aktiviert: falsch, displayErrorTraces: wahr)

Daher werden wir vorerst keine Änderungen vornehmen

Ich finde das auch verwirrend, habe keine Möglichkeit gefunden, diese in der Dokumentation zu aktivieren, und die Verwendung der Klasse von miyatin zeigt diesen Fehler:

Fehler CS0234: Der Typ- oder Namespace-Name „INancyEnvironment“ existiert nicht im Namespace „Nancy“ (fehlt Ihnen eine Assembly-Referenz?)
Fehler CS0115: „CustomBootstrapper.Configure(INancyEnvironment)“: keine geeignete Methode zum Überschreiben gefunden

Wenn Sie v2 verwenden, befolgen Sie die Anweisungen auf der Fehlerseite. In einem Bootstrapper überschreiben Sie Configure und verwenden Sie environment.Tracing

Richtig, mir fehlte eine using-Direktive, volle Klasse für andere Leute, falls sie das gleiche Problem haben:

using Nancy;
using Nancy.Bootstrapper;
using Nancy.TinyIoc;
using Nancy.Configuration;

public class CustomBootstrapper : DefaultNancyBootstrapper
{
        public override void Configure(INancyEnvironment environment)
        {
            environment.Tracing(enabled: false, displayErrorTraces: true);
        }
}

Danke schön!

Welche Protokollierungsstufe bietet die Konfigurationsänderung tatsächlich? :)

    public override void Configure(INancyEnvironment environment)
    {
       environment.Tracing(enabled: false, displayErrorTraces: true);
    }

Gestern bin ich auf ein Problem gestoßen, bei dem Nancy Bind<> bei mir mit ModelBinding.ModelBindingException abstürzte, was durch einen fehlerhaften DateTime-Feldwert 0002-01-01 00:00:00 +0000; verursacht wurde, und ich hatte irgendwie gehofft, dass diese Konfiguration es tatsächlich sagen würde mir, was das anstößige Attribut von name war, aber es tat es nicht.

Übrigens. Ich habe den Fehler gefunden, aber ich musste mehrere Get/Set-Methoden in meine Datumsfelder schreiben, um den Fehler zu finden. :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen