В разделе пользовательских ошибок используется HttpHandler для перехвата того факта, что у вас нет страницы, а затем перенаправляет ответ , так что сервер возвращает Site-Map
вместо этого, что является доступный ресурс, поэтому статус 200 правильный, так как запрос был как раз для Site-Map
.
В конечном итоге вы хотите обслуживать две версии Site-Map
, одну, когда это фактический запрос (200), и одну, когда это пользовательский ответ об ошибке (404). Я бы создал другую версию страницы Site-Map
, OnError-Site-Map
, расширяющую класс страниц для наследования его функций, но затем переопределяя код ответа http , чтобы он выдавал желаемый статус 404, но для этого расширенного только версия Затем вы помещаете это в раздел пользовательских ошибок в файле web.config.