У меня простая цель; Я просто хочу, чтобы каждую ошибку 404 перенаправляли в одностраничное приложение для SPA для обработки маршрутизации.
Похоже, это работает для маршрутов, которые могут существовать в приложении ASP.NET (на основе существующих контроллеров). Однако, если я перехожу к маршруту, который не мог быть маршрутом ASP.NET (что происходит, поскольку некоторые маршруты существуют только на стороне клиента в приложении Vue), создается впечатление, что IIS немедленно берет на себя ответственность за запрос и выдача этого простого текстового / html ответа:
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Ответ выдается почти сразу после получения запроса, что, по-видимому, указывает на то, что IIS немедленно обрабатывает его как 404 до того, как его обработают все управляемые обработчики .NET.
Как мне остановить IIS от этого?
Дополнительная информация:
Откат ошибки ASP.NET Web.config уже существует:
<system.webServer>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/vue-fallback.html" responseMode="File" />
</httpErrors>
</system.webServer>
Это сервер ASP.NET MVC; System.Web.Mvc v4.0.0.0.
Версия IIS: IIS 8
ETA:
Я запустил сервер локально (не уверен, почему я не сделал этого раньше), точная ошибка - ошибка обработчика StaticFile.
HTTP Error 404.0 - Not Found
...
Module IIS Web Core
Notification MapRequestHandler
Handler StaticFile
Error Code 0x80070002