Có ba giá trị có thể, từ sơ đồ:
<attribute name="existingResponse" type="enum" defaultValue="Auto">
<enum name="Auto" value="0" />
<enum name="Replace" value="1" />
<enum name="PassThrough" value="2" />
</attribute>
đại khái, đây là cách tôi hiểu điều này:
passthrough - lá phản ứng hiện một mình, miễn là có một . Có thể logic ứng dụng của bạn không trả về bất cứ thứ gì. Trong trường hợp đó, trang lỗi được định nghĩa ở đây được sử dụng.
Auto - sử dụng các trang lỗi IIS theo quy định tại nút này trừ khi trong asp.net bạn đã thiết lập:
Response.TrySkipIisCustomErrors = true;
nếu bạn đã làm điều đó, phản ứng từ mã của bạn được sử dụng.
Thay thế - luôn sử dụng các trang lỗi IIS, ngay cả khi nhà phát triển đã đặt TrySkipIisCustomErrors
.
Tùy chọn cuối cùng có vẻ là tùy chọn bạn muốn.
Edit:
xem xét:
existingResponse="PassThrough"
bây giờ cố gắng để mở một không tồn tại trang asp.net, bạn sẽ thấy:
Mặc dù tài nguyên không có ở đó, thời gian chạy đã cung cấp một phản hồi, nó được chuyển tới trình duyệt.
Bây giờ, hãy thử mở một trang html không tồn tại. Lần này chúng tôi vẫn nhận được trạng thái 404 nhưng trang trống.
thay đổi để:
existingResponse="Auto"
trang asp.net mất tích vẫn hiển thị asp.net trang lỗi, nhưng đối với các trang html thiếu bây giờ chúng ta có được IIS một:
Vì vậy, tóm tắt: khi nhìn vào thiếu html và aspx trang với nhau existingResponse
giá trị, chúng tôi nhận trang lỗi khác nhau:
.html-404 .aspx-404 .aspx-500
--------------------------------------------------
Auto IIS asp.net asp.net
PassThrough - asp.net asp.net
Replace IIS IIS IIS
Xem http://serverfault.com/a/124074/87017 – Pacerier