2010-07-19 26 views
5

Tôi đã lỗi tùy chỉnh thiết lập trong file config web như sau:ASP.NET customErrors mode = với RemoteOnly và global.asax ngoại lệ xử lý

<customErrors mode="RemoteOnly" defaultRedirect="GenericError.aspx" /> 

Fine và dandy ... Tôi thích chế độ mà = "RemoteOnly "tạo điều kiện phát triển ...

Đối với trường hợp ngoại lệ unhandled, tôi có trong global.asax:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) 
    Response.Redirect("GenericError.aspx") 
End Sub 

Tuy nhiên, trường hợp ngoại lệ unhandled sẽ trang báo lỗi chung chung thay vì s thông tin vàng creen of death được các nhà phát triển ưa thích. Tôi có thể nhận xét ra các chuyển hướng trong global.asax, nhưng sau đó tôi cần phải nhớ để thay đổi nó cho môi trường sản xuất. Có cách nào tôi có thể kiểm tra trong Application_Error cho dù tôi là từ xa hay không để xác định xem có nên chuyển hướng?

Trả lời

3

Bạn không cần Response.Redirect trong Global.asax. Nó sao chép hành vi của thẻ <customErrors>. RemoteOnly sẽ cung cấp cho người dùng cuối thông báo lỗi tùy chỉnh và địa chỉ usrs trang lỗi asp.net chuẩn. Nếu các nhà phát triển của bạn sử dụng một máy chủ web cục bộ để phát triển bạn có cả hai trong một.

Cách tiếp cận khác là đặt <customErrors> thành Off trên máy chủ phát triển và đặt thành On trong môi trường sản xuất. Thường có nhiều mục trong web.config cần phải thay đổi để nó không còn là một khó khăn nữa.

+0

Bạn nói đúng, tôi phải có rắm não vì không hiểu! – harrije

0

Bạn thậm chí không cần dòng trong Application_Error nếu bạn đã đặt defaultRedirect trong web.config của mình.