2013-11-25 7 views
7

gefangen Ich habe den Demo-Code von http://blogs.msdn.com/b/webdev/archive/2013/11/22/debugging-owin-app-or-framework.aspx, und es zeigt eine sexy Fehlerseite.Welche Art von Ausnahmen werden von Microsoft.Owin.Diagnostics.ErrorPageExtensions.UserErrorPage

app.UseErrorPage(new ErrorPageOptions() 
     { 
      //Shows the OWIN environment dictionary keys and values. This detail is enabled by default if you are running your app from VS unless disabled in code. 
      ShowEnvironment = true, 
      //Hides cookie details 
      ShowCookies = false, 
      //Shows the lines of code throwing this exception. This detail is enabled by default if you are running your app from VS unless disabled in code. 
ShowSourceCode = true, 
      }); 

      app.Run(async context => 
      { 
       throw new Exception("UseErrorPage() demo"); 
       await context.Response.WriteAsync("Error page demo"); 
      }); 
     } 

Wenn ich jedoch eine Ausnahme in einer Controller-Aktion zu werfen, wird die Fehlerseite nicht gezeigt, und ich sehe immer noch die YSOD.

Also ich möchte wissen, welche Ausnahmen von UseErrorPage abgefangen werden? Benötige ich zusätzliche Konfigurationen, damit es funktioniert?

+1

Die Web-API scheint die Ausnahme zu verarbeiten und in eine 500-Antwort zu konvertieren, bevor die UseErroPage-Middleware damit umgehen kann. Im Allgemeinen werden alle unbehandelten Antworten in der Pipeline von UseErrorPage Middleware behandelt. – Praburaj

Antwort

7

Und mit Controller Aktion meinen Sie MVC? MVC läuft nicht direkt auf OWIN, daher sieht Asp.Net zuerst die Ausnahme und zeigt Ihnen das YSOD. Die Katana ErrorPage kann nur Ausnahmen anzeigen, die in der OWIN-Pipeline vorkommen.

+0

Danke Tratcher. –