2012-01-30 32 views
16

Tôi vừa triển khai một ứng dụng ASP.NET MVC 3 cho máy chủ dàn dựng của chúng tôi. Bất cứ khi nào xảy ra lỗi, tôi không thể nhận được thông tin lỗi chi tiết, tức là "màn hình màu vàng của cái chết". Thay vào đó, tôi chỉ nhận được đơn giản "Rất tiếc, đã xảy ra lỗi khi xử lý yêu cầu của bạn". thông điệp.Không thể nhận được thông tin lỗi chi tiết trong trang web ASP.NET MVC

Web.config My không bao gồm customErrors tắt, tức là .:

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

Trong trường hợp này, tôi biết chính xác những gì các lỗi cơ bản là. (Tôi quên để thiết lập các điều khoản trên một thủ tục lưu trữ.) Nhưng tôi thực sự muốn (lại) cho phép xử lý lỗi để tôi có thể tìm thấy những lỗi này một cách nhanh chóng. Tất nhiên, tôi sẽ loại bỏ điều này khi chúng tôi thực sự phát trực tiếp vì lý do bảo mật.

Các cài đặt khác có thể ghi đè lên việc xử lý lỗi ASP.NET mặc định?

+0

có thể trùng lặp của [CustomErrors mode = "Off"] (http://stackoverflow.com/questions/101693/customerrors-mode-off) –

Trả lời

31
<customErrors mode="Off"/> 

Các "Off" phải được viết hoa một cách chính xác.

Từ "Editing ASP.NET Configuration Files":

Case-nhạy

Vì các thẻ phải được tốt được hình thành XML, các thẻ, thẻ phụ, và các thuộc tính là trường hợp nhạy cảm. Tên thẻ và thuộc tính tên là lạc đà, nghĩa là ký tự đầu tiên của thẻ tên là chữ thường và chữ cái đầu tiên của bất kỳ từ nào được nối liền sau từ hoặc từ là chữ hoa. Trong hầu hết các trường hợp, các giá trị thuộc tính chuỗi là Trường hợp Pascal, có nghĩa là ký tự đầu tiên là chữ hoa và chữ cái đầu tiên của bất kỳ từ hoặc từ ghép nối tiếp theo là chữ hoa. Ngoại lệ là đúng và sai, luôn là chữ thường.

Hãy nhớ trẻ em, bạn học điều gì đó mới mỗi ngày. Ngay cả khi những gì bạn học là lame.

+13

+1 cho "Nhớ trẻ em, bạn học điều gì đó mới mỗi ngày. Ngay cả khi những gì bạn học là lame. " :) –

7

Bạn có thể có HandleErrorAttribute bộ lọc chung trong tệp Global.asax.cs của mình. Loại bỏ dòng đó.

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

kiểm tra nếu máy chủ của bạn sử dụng các tập tin cấu hình tương tự cho trang web của bạn (nếu tập tin cấu hình được triển khai vào trang web dir là như nhau)

2

Một tốt hơn, giải pháp lâu dài có thể để thêm Elmah để dự án của bạn, nó sẽ thêm ghi nhật ký chi tiết cho dự án web của bạn.

Bao gồm:

  • Đốn và cung cấp gần như tất cả trường hợp ngoại lệ unhandled.
  • Trang web để xem từ xa toàn bộ nhật ký của các ngoại lệ được mã hóa lại.
  • Trang web để xem từ xa chi tiết đầy đủ của bất kỳ ngoại lệ nào đã đăng nhập, bao gồm dấu vết ngăn xếp màu.
  • Trong nhiều trường hợp, bạn có thể xem lại màn hình màu vàng ban đầu của cái chết mà ASP.NET đã tạo cho một ngoại lệ nhất định, ngay cả khi chế độ CustomErrors tắt.
  • Thông báo e-mail của từng lỗi tại thời điểm xảy ra lỗi.
  • Nguồn cấp dữ liệu RSS trong 15 lỗi cuối cùng từ nhật ký.
Các vấn đề liên quan