2012-04-20 25 views
35

W moim setupie pojawia się błąd 500, jeśli coś pójdzie nie tak z moim żądaniem Web API.Asp.net Web API zwraca błąd nieopisujący. 500

Na przykład z tym prostym kodem.

public IQueryable<Article> Get(){ 
    throw new Exception("error"); 
    return db.Articles; //yeah i know.. unreachable, not the point 
} 

Czego oczekiwać (i co się dzieje w zwykłym kontrolerem MVC):

enter image description here

Co mam (w Web API):

enter image description here My Web config:

<customErrors mode="Off"/> 
<compilation debug="true" targetFramework="4.5"> 

//under webserver 
<httpErrors errorMode="detailed"/> 

Aplikacja po ol pracuje 4.0 w trybie zintegrowanym. Aplikacje 32-bitowe są włączone.

Jak mogę wyświetlić błąd w przeglądarce? A przynajmniej podczas debugowania?

+0

Nie dostaję tego ekranu. Czy używasz .NET 4.5? – Aliostad

+0

Tak Używam wstępnej wersji 4.5 i EF 5. –

+11

Główne pytanie jest tuż pod koniec: Jak zrobić błąd powierzchni w przeglądarce/kliencie? Znalazłem to: http://lostechies.com/jimmybogard/2012/04/18/custom-errors-and-error-detail-policy-in-asp-net-web-api/ Musisz wykonać GlobalConfiguration.Configuration .IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; –

Odpowiedz

1

Jeśli jest to usługa sieciowa WCF, należy zmienić wartość flagi IncludeExceptionDetailInFaults atrybutu ServiceBehavior na wartość true, aby błąd pojawiał się w żądany sposób.

+3

coz nikt nie dał mu właściwej odpowiedzi nawet po 1 roku .. nawet ty. –

2

Miał ten sam problem.

Dla mnie dodanie

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 

w metodzie WebApiConfigRegister pomogło.

Po tym otrzymałem szczegółowe informacje o błędzie.

Oto niektóre informacje na temat MSDN