2012-02-15 31 views

Trả lời

6

Điều này sẽ phụ thuộc, nhưng thông thường phải ở trong tệp Web.config.

Web.Debug.config và Web.Release.config (và các biến thể cấu hình khác) được sử dụng khi bạn triển khai ứng dụng của mình. Khi bạn thực hiện thao tác xuất bản, phép biến đổi được áp dụng cho tệp Web.config của bạn trong quá trình triển khai, có nghĩa là bạn có thể có cài đặt cấu hình cụ thể được áp dụng cho gỡ lỗi, phát hành và các cấu hình khác mà bạn đã thiết lập.

Nếu bạn không bình thường thực hiện thao tác xuất bản trong khi phát triển, thì bạn sẽ cần phải áp dụng cài đặt này cho tệp Web.config để nó có hiệu lực.

Xem http://msdn.microsoft.com/en-us/library/dd465318.aspx để biết thêm chi tiết về cách chuyển tệp Web.config.

Xem http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx để biết ví dụ về thêm phần tử customErrors vào tệp Web.config.

+0

Scott Hanselman có video tuyệt vời về Kênh 9 về triển khai và cách sử dụng hiệu quả các gỡ lỗi và phát hành phiên bản của web.config. http://channel9.msdn.com/Events/MIX/MIX10/FT14 –

+0

i xác định trong web.config trước khi đóng thẻ như sau: - nhưng nếu xảy ra lỗi thì thông báo lỗi đầy đủ (không phải lỗi tùy chỉnh) sẽ được hiển thị ... !!! –

+2

Đặt phần tử dưới thẻ . Bạn cũng sẽ cần phải xác định defaultRedirect, hoặc là một hành động điều khiển, hoặc tốt hơn là một tệp html tĩnh. Ngoài ra, nhiều người đã giữ lỗi tùy chỉnh, sau đó xử lý định tuyến trong trình xử lý lỗi ứng dụng. Xem http://stackoverflow.com/questions/6733064/how-do-i-display-custom-error-pages-in-asp-net-mvc-3 để biết chi tiết. – devdigital

69

Từ kinh nghiệm của tôi, chúng tôi sẽ biến lỗi tùy chỉnh thành Bật ở chế độ phát hành và tắt tính năng này khi gỡ lỗi. Để tự động thực hiện việc này, chúng tôi có thể sử dụng chuyển đổi web.config như ví dụ sau.

Web.Debug.config

Thiết lập này sẽ cho phép máy chủ web để hiển thị trang ASP.NET vàng có chứa thông tin lỗi hữu ích.

<customErrors mode="Off" xdt:Transform="Replace" /> 

Web.Release.config

Mặt khác, chúng tôi không muốn người dùng biết lỗi kỹ thuật. Chúng ta nên sử dụng trang lỗi tùy chỉnh thay vì trang màu vàng ASP.NET.

<customErrors mode="On" xdt:Transform="Replace" /> 
+2

Điều này sẽ từ lâu đã được đánh dấu là câu trả lời được chấp nhận ... –

+1

Tại sao không phải 'RemoteOnly'? Sau đó, bạn sẽ không phải sử dụng chuyển đổi XML và các nhà phát triển có thể thấy các lỗi khi xem trang web trên máy chủ web. –

+0

Thỉnh thoảng nó không thuận tiện để xem trang web từ máy chủ web? (Không phải điểm của bạn không có giá trị ..) –

4

Đặt trong Web.config và tạo trang lỗi để chuyển hướng. Trong MVC, bạn có HandleErrorAttribute, đánh dấu nó trên lớp để xử lý lỗi không mong muốn, đăng nhập và ném trang lỗi. Lỗi tùy chỉnh là trang mặc định cho lỗi cụ thể với mã trạng thái đã biết.

<system.web> 
    <customErrors mode="On"> 
     <error statusCode="404" redirect="/PageNotFound?" /> 
    </customErrors> 
</system.web> 
Các vấn đề liên quan