2010-02-26 38 views
32

Tôi vừa cài đặt trên máy chủ Windows Server 2008/IIS7.5 đầu tiên của mình cho một cuộc thi mà tôi đang tham gia. Tôi không thể cho cuộc sống của mình tìm ra cách để xử lý lỗi TẮT HOÀN TOÀN. Các tùy chọn duy nhất tôi thấy là:Tắt Xử lý Lỗi HTTP IIS7?

  • Tuỳ chỉnh
  • Chi tiết
  • Chi tiết địa phương, tùy chỉnh cho xa

Tôi muốn tắt tính năng này hoàn toàn, và tôi không thấy bất kỳ cách nào Để làm việc đó. Tui bỏ lỡ điều gì vậy?

Tình hình của tôi:

Tôi có một khuôn khổ PHP RESTful mà bắt ngoại lệ và phát ra một trạng thái HTTP 500 nếu ngoại lệ đã chưa được xử lý. Sau đó nó đặt thông báo ngoại lệ được chỉ định trong phần thân phản hồi và gửi nó tới trình duyệt. Điều này làm việc tốt trong Apache - các tiêu đề chính xác được gửi và thông điệp được hiển thị cho người dùng. Tuy nhiên, trong IIS, đáp ứng cho mã trạng thái HTTP 4xx và 5xx luôn bị chặn và được tiêm với một số tệp tin hoặc tệp HTML đã chuẩn bị khác và đó chính là điều tôi không muốn nó làm nữa. Hãy giúp tôi!

Trả lời

63

Sau khi một số tìm kiếm mở rộng hơn, tôi thấy câu trả lời ở đây:

http://blogs.msdn.com/webdevelopertips/archive/2009/08/24/tip-93-did-you-know-php-and-custom-error-pages-configuration.aspx

Giải pháp là để tự chỉnh sửa web.config tập tin của bạn với tùy chỉnh này "httpErrors" entry:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <httpErrors existingResponse="PassThrough" /> 
    </system.webServer> 
</configuration> 

Tuy nhiên, do tính năng IIS 7.0 "lockdown", bạn có thể nhận được "Không thể sử dụng phần cấu hình này tại đường dẫn này. Điều này xảy ra khi phần này là l ocked ở cấp độ cha mẹ. " lỗi. Để giải quyết điều đó, hãy thực hiện như sau trong lời nhắc lệnh:

cd C:\Windows\System32\inetsrv 

appcmd unlock config /section:httpErrors 
2

Trong Trình quản lý IIS -> Trang web -> Trang lỗi, nhấp chuột phải vào từng trang lỗi và chọn ‘Xóa’.

Thật không may là không có cách nào để nói với IIS không can thiệp vào phía kịch bản, vì vậy nó luôn là một vấn đề triển khai gây phiền nhiễu.