Я использую маршрутизацию в 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).