2012-01-30 15 views
16

Właśnie wdrożyłem aplikację ASP.NET MVC 3 na nasz serwer pomostowy. Ilekroć wystąpi błąd, nie mogę uzyskać szczegółowych informacji o błędach, tj. "Żółty ekran śmierci". Zamiast tego po prostu otrzymuję prostą odpowiedź "Przepraszamy, wystąpił błąd podczas przetwarzania Twojej prośby." wiadomość.Nie można uzyskać szczegółowych informacji o błędzie na stronie ASP.NET MVC.

Moje Web.config robi zawierać CustomErrors off, tj .:

<system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
     ... 
    </assemblies> 
    </compilation> 
    <customErrors mode="off"/> 
</system.web> 

W tym przypadku, wiem dokładnie co bazowy jest błąd. (Zapomniałem ustawić uprawnienia do procedury przechowywanej.) Ale naprawdę chcę (ponownie) włączyć obsługę błędów, aby szybko znaleźć te błędy. Oczywiście usunę to, gdy faktycznie zaczniemy żyć ze względów bezpieczeństwa.

Jakie są inne ustawienia, które mogą przesłonić domyślną obsługę błędów ASP.NET?

+0

możliwy duplikat [Tryb CustomErrors = "Off"] (http://stackoverflow.com/questions/101693/customerrors-mode-off) –

Odpowiedz

31
<customErrors mode="Off"/> 

The "Off" musi być kapitalizowane poprawnie.

Editing ASP.NET Configuration Files "Od":

Case-Sensitivity

Ponieważ znaczniki muszą być dobrze uformowane XML, znaczniki, Subtagi i atrybuty są wrażliwe na wielkość liter. Nazwy znaczników i atrybuty są pisane wielbłądami, co oznacza, że ​​pierwszy znak nazwy znacznika ma małe litery, a pierwsza litera każdego kolejnego połączonego słowa lub słów jest wielka. W większości przypadków wartości atrybutu ciągu znaków to przypadku Pascala, co oznacza, że ​​pierwszy znak jest wielką literą, a pierwsza litera każdego kolejnego połączonego słowa lub słowa jest wielka i zawiera: . Wyjątki to prawda i fałsz, które są zawsze pisane małymi literami.

Pamiętaj dzieci, każdego dnia uczysz się czegoś nowego. Nawet jeśli to, czego się uczysz, jest kiepskie.

+13

+1 dla "Pamiętaj dzieci, każdego dnia uczysz się czegoś nowego. Nawet jeśli to, czego się uczysz, jest kulawy. :) –

7

Możesz mieć globalny filtr HandleErrorAttribute w swoim pliku Global.asax.cs. Usuń tę linię.

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
    } 
0

sprawdzić, czy Twój serwer używa tego samego pliku konfiguracyjnego na swojej stronie internetowej (jeśli plik config wdrożony na stronie katalogu jest taka sama)

2

Lepszym, długoterminowe rozwiązanie może być dodanie Elmah do projektu, dodaje szczegółowe logowanie do twojego projektu internetowego.

tym:

  • rejestrowanie prawie wszystkich nieobsłużonych wyjątków.
  • Strona internetowa do zdalnego przeglądania całego rejestru przekodowanych wyjątków.
  • Strona internetowa umożliwiająca zdalne przeglądanie wszystkich szczegółów dowolnego zarejestrowanego wyjątku, w tym kolorowych śladów stosu.
  • W wielu przypadkach można przejrzeć oryginalny żółty ekran śmierci generowany przez program ASP.NET dla danego wyjątku, nawet po wyłączeniu trybu customErrors.
  • Powiadomienie e-mailem o każdym błędzie w momencie jego wystąpienia.
  • Kanał RSS z 15 ostatnich błędów z dziennika.
Powiązane problemy