TLDR: Trước tiên, hãy xác định xem bạn đang gặp lỗi ở đâu (cuộn tìm kiếm ảnh chụp màn hình của một cái gì đó giống với lỗi của bạn), thực hiện các thay đổi để nhận được một cái gì đó mới, lặp lại.
Trước tiên hãy xác định thông báo lỗi nào bạn đang thực sự nhìn thấy.
Nếu bạn đang xem tập tin nằm ở đây ...
% SystemDrive% \ inetpub \ custerr \\ 500.htm
... Nhìn chung là như thế này:
... sau đó bạn biết rằng bạn đang thấy trang lỗi hiện được cấu hình trong ** IIS ** và bạn KHÔNG cần phải thay đổi cài đặt tùy chỉnh ASP.net, cài đặt chi tiết lỗi asp hoặc cài đặt trình duyệt "hiển thị lỗi http thân thiện".
Bạn có thể muốn nhìn vào đường dẫn được tham chiếu ở trên thay vì tin vào ảnh chụp màn hình của tôi chỉ trong trường hợp ai đó thay đổi nó.
"Có, tôi thấy lỗi được mô tả ở trên ..."
Trong trường hợp này, bạn đang thấy cài đặt < httpErrors > hoặc trong Trình quản lý IIS, đó là Trang lỗi -> Chỉnh sửa cài đặt tính năng. Mặc định cho điều này là errorMode = detailLocalOnly ở cấp nút máy chủ (trái ngược với cấp độ trang web) có nghĩa là trong khi bạn sẽ thấy trang lỗi được định cấu hình này trong khi ở xa, bạn sẽ có thể đăng nhập cục bộ vào máy chủ và xem toàn bộ lỗi sẽ trông giống như thế này:
Bạn nên có mọi thứ bạn cần tại thời điểm đó để sửa lỗi hiện tại.
"Nhưng tôi không thấy lỗi chi tiết ngay cả khi duyệt trên máy chủ"
Điều đó để lại một vài khả năng.
- Trình duyệt bạn đang sử dụng trên máy chủ được cấu hình để sử dụng proxy trong cài đặt kết nối của nó để nó không bị xem là "cục bộ".
- Bạn không thực sự duyệt đến trang web mà bạn nghĩ rằng bạn đang duyệt - điều này thường xảy ra khi có bộ cân bằng tải liên quan. Thực hiện kiểm tra ping để xem dns có cung cấp cho bạn IP trên máy chủ hoặc ở nơi nào khác không.
- Cài đặt httpErrors của trang web của bạn chỉ được đặt cho "Tùy chỉnh". Thay đổi nó thành "Chi tiếtLocalOnly". Tuy nhiên, nếu bạn gặp lỗi cấu hình, điều này có thể không hoạt động do httpErrors cấp trang web cũng là một mục cấu hình. Trong trường hợp đó, tiến tới # 4
- Mặc định cho httpErrors cho tất cả các trang web được đặt cho "Tùy chỉnh". Trong trường hợp này, bạn cần nhấp vào nút máy chủ cấp cao nhất trong Trình quản lý IIS (chứ không phải một trang web cụ thể) và thay đổi cài đặt httpErrors ở đó thành Chi tiếtLocalOnly . Nếu đây là máy chủ nội bộ và bạn không lo lắng về việc tiết lộ thông tin nhạy cảm, bạn cũng có thể đặt nó thành "Chi tiết" cho phép bạn thấy lỗi từ các máy khách khác ngoài máy chủ.
- Bạn đang thiếu một mô-đun trên máy chủ như UrlRewrite (cái này cắn tôi rất nhiều và nó thường đưa ra thông báo chung bất kể cài đặt httpErrors).
"Đăng nhập vào máy chủ không phải là một lựa chọn cho tôi"
Thay đổi httpErrors của trang web của bạn thành "Chi tiết" để bạn có thể nhìn thấy nó từ xa. Nhưng nếu nó không hoạt động thì lỗi của bạn có thể đã là lỗi cấu hình, hãy xem # 3 ngay trên đây. Vì vậy, bạn có thể bị mắc kẹt với # 4 hoặc # 5 và bạn sẽ cần ai đó từ nhóm máy chủ của mình.
"Tôi không thấy trang lỗi được mô tả ở trên. Tôi đang thấy điều gì đó khác biệt"
Nếu bạn thấy điều này ...
... Và bạn sẽ thấy một cái gì đó như thế này ...
... sau đó bạn cần thay đổi "Gửi lỗi tới trình duyệt" thành đúng trong Trình quản lý IIS, trong Trang web -> IIS -> ASP -> Thuộc tính gỡ lỗi
Nếu bạn thấy điều này ...
hoặc ...
... Bạn cần phải vô hiệu hóa các lỗi thân thiện trong trình duyệt của mình hoặc sử dụng chế độ xem web của fiddler để xem phản hồi thực tế so với những gì trình duyệt của bạn chọn để hiển thị cho bạn.
Nếu bạn thấy điều này ...
... Sau đó, các lỗi tùy chỉnh đang hoạt động nhưng bạn không có trang lỗi tùy chỉnh (tất nhiên tại thời điểm này đã nói về .net chứ không phải asp cổ điển). Bạn cần thay đổi thẻ customErrors trong web.config thành RemoteOnly để xem trên máy chủ hoặc Tắt để xem từ xa.
Nếu bạn thấy một cái gì đó được tạo kiểu như trang web của bạn, thì có thể có lỗi tùy chỉnh On hoặc RemoteOnly và nó sẽ hiển thị trang tùy chỉnh (ví dụ: Lượt xem-> Chia sẻ-> Error.cshtml trong MVC). Điều đó nói rằng, không chắc là có thể ai đó đã thay đổi các trang trong IIS cho httpErrors vì vậy hãy xem phần đầu tiên về điều đó.