2012-02-15 36 views
7

Tôi có kịch bản này:ASP.NET/Web.config: customErrors chỉ chuyển hướng trên 404

Một người dùng đến trang web của tôi và followes một liên kết, mà doesnt tồn tại nữa, anh ta nên được chuyển hướng đến một errorpage tùy chỉnh . (hoạt động)

Nếu người dùng làm điều gì đó, điều đó sẽ gây ra lỗi, anh ta sẽ thấy Stacktrace và trang Errorpage thực.

Đây là Web.config của tôi hiện tại:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.web> 
     <customErrors> 
      <error statusCode="404" redirect="/errors/404.htm" /> 
     </customErrors> 
     <compilation debug="true" strict="false" explicit="true" /> 
    </system.web> 
</configuration> 

với cấu hình này, 404 sẽ được chuyển đến địa điểm đúng, nhưng một HTTP 500 sẽ được hiển thị như sau:

Lỗi Máy chủ trong '/' Ứng dụng

Mô tả: Đã xảy ra lỗi ứng dụng trên máy chủ. Cài đặt lỗi tùy chỉnh hiện tại cho ứng dụng này ngăn các chi tiết của lỗi ứng dụng không được xem từ xa (vì lý do bảo mật). Tuy nhiên, nó có thể được xem bởi các trình duyệt đang chạy trên máy chủ cục bộ.

Chi tiết: Để cho phép xem chi tiết thông báo lỗi cụ thể này trên máy từ xa, vui lòng tạo thẻ trong tệp cấu hình "web [.config" nằm trong thư mục gốc của ứng dụng web hiện tại. Thẻ này sau đó sẽ có thuộc tính "chế độ" được đặt thành "Tắt".

[...]

Nhưng trong trường hợp này tôi muốn hiển thị stacktrace.

Tôi làm cách nào để thực hiện việc này?

Lưu ý: Chúng tôi đang sử dụng Linux với Mono < - FastCGI -> Lighttpd construction.

Trả lời

0

Trả lời của Ray Van là đúng, nhưng đây không phải là vấn đề thực tế.

Lý do không hiển thị stacktrace là lỗi trong chính mono. Không có cách nào khác sau đó viết một trang lỗi riêng nơi stacktrace được dispayed.

13

Trong mục web.config sau, một không tìm thấy (404) điều kiện sẽ gửi một người dùng để PageNotFound.aspx

Sử dụng mode = "Off" và tất cả mọi người (người dùng địa phương và từ xa) sẽ thấy chi tiết lỗi.

<customErrors mode="Off"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 

Chế độ sử dụng = "RemoteOnly" và người dùng cục bộ sẽ thấy các trang lỗi chi tiết với dấu vết ngăn xếp và chi tiết biên soạn. Người dùng từ xa được trình bày với trang GeneralError.aspx

<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 
Các vấn đề liên quan