Ошибка 404 и System.Web.Routing.RouteTable.Routes

Я использую маршрутизацию в Asp.net 4.0 / vb.net в качестве примера ниже:

rotas.MapPageRoute("test", "test/{detail}/{id}", "~/test/test.aspx")

В web.config установил customErrors:

<customErrors defaultRedirect="ErrorPage.htm" mode="On">
    <error statusCode="404" redirect="Error404.htm"/>
</customErrors>

Страница ошибки 404 отображается правильно, если неверный URL-адрес отправлен без использования маршрутизации. Пример: site / defaul2.aspx.

Но если я ввожу недопустимый URL-адрес с использованием маршрутизации, такой как site / test2 / something / 123, появляется стандартная страница ошибки 404 asp.net вместо моей пользовательской страницы 404 (Error404.htm).


person user1473635    schedule 29.08.2012    source источник


Ответы (1)


Если вы используете IIS7, вам, возможно, придется указать здесь свои настраиваемые страницы ошибок.

Щелкните сайт и выберите «Страницы ошибок» (в списке IIS) и измените запись на 404 и 500.

введите описание изображения здесь

Это не тот шаг, который мне приходилось делать в IIS6, но II6 действительно требовал обработчика подстановочных знаков для маршрутизации URL-адресов, поэтому ASP.NET обрабатывал запросы для неродных файлов (например, jpg, png, pdf и т. Д.). IIS7 делает это по умолчанию, но, судя по моему опыту, не отправляет эти ресурсы на страницы ошибок ASP.NET - вот почему вам необходимо явно задавать эти страницы ошибок.

person CoderMarkus    schedule 29.08.2012