2012-02-22 33 views
6

Khi chạy ứng dụng ASP cổ điển trong IIS7, khi nào thì lỗi 500 xảy ra thay vì lỗi 500.100? Những gì tôi có nghĩa là một lỗi 500 xảy ra nhưng không phải là một lỗi 500.100. Tôi theo ấn tượng rằng ASP cổ điển sẽ chỉ ném 500.100 lỗi khi lỗi xảy ra trong mã VBScript của nó. Một số giải thích thông qua một ví dụ sẽ rất hữu ích.500 Vs 500.100 Lỗi trong ASP cổ điển

+0

Tôi chưa bao giờ thấy 1 lỗi 500.100 với ASP, chỉ 500. –

+0

Bạn đúng - Tôi tin rằng IIS 7 chỉ trả về 500 cho bất kỳ lỗi máy chủ nội bộ nào. Tại sao điều này là một vấn đề? –

+1

Tôi có IIS 7.5 trên máy cục bộ của mình. Đối với trang web ASP cổ điển trong IIS, tôi đã chỉ định một trang lỗi tùy chỉnh 'Error1.asp' cho mã lỗi 500.100. Tôi đã sử dụng 'Trang lỗi' dưới cấu hình trang web trong IIS cho việc này. Bây giờ khi một lỗi xảy ra trong một trang asp cổ điển, IIS ám Error1.asp. Vì vậy, điều đó có nghĩa là lỗi 500 không được nâng lên. Đó là lý do tại sao tôi hỏi câu hỏi này về lỗi 500 lỗi 500.100. Tại sao IIS 7.5 của tôi không tăng 500 lỗi trong trường hợp này? – Sunil

Trả lời

7

ASP cổ điển luôn trả về trạng thái 500.100 nếu có lỗi tập lệnh. Nó đã được như trong một thời gian rất dài trong các phiên bản trước của IIS và hành vi đã không thay đổi.

Nếu bạn muốn bắt lỗi script ASP Classic có thể đọc các đối tượng Server.GetLastError() trong trang lỗi tùy chỉnh của bạn (nói cho khai thác gỗ), bạn cần phải cung cấp một bộ xử lý đặc biệt cho 500.100.

Nếu bạn không chỉ định lỗi 500.100 tùy chỉnh thì IIS sẽ quay trở lại trang lỗitùy chỉnh của riêng bạn (hoặc riêng) Server.GetLastError() sẽ không cung cấp bất kỳ thông tin hữu ích nào về lỗi.

+0

Kev - Cảm ơn. Giải thích của bạn đã rất hữu ích và tạo sự khác biệt giữa 500 và 500.100 lỗi rất rõ ràng từ góc độ ASP cổ điển. – Sunil

+0

Tôi đã trả lời rằng đã có ở đây: http://stackoverflow.com/a/9352669/290343 –

+0

Vâng, nhưng hãy đối mặt với lời giải thích của @OferZelig Kev là tốt hơn. +1 – Lankymart

Các vấn đề liên quan