【发布时间】:2019-01-07 21:11:41
【问题描述】:
我有一个简单的目标;我只想将每一个 404 错误重定向到单页应用程序,以便 SPA 处理路由。
这似乎适用于可能存在于 ASP.NET 应用程序中的路由(基于现有控制器)。但是,如果我导航到不可能是 ASP.NET 路由的路由(正在发生,因为某些路由仅存在于 Vue 应用程序的客户端),似乎 IIS 立即负责请求并发出这个简单的 text/html 响应:
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
在收到请求后几乎立即发出响应,这似乎表明 IIS 在任何 .NET 托管处理程序接触它之前立即将其作为 404 处理。
如何阻止 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
预计到达时间:
我在本地运行服务器(不知道为什么不早点这样做),确切的错误似乎是 StaticFile 处理程序中的故障。
HTTP Error 404.0 - Not Found
...
Module IIS Web Core
Notification MapRequestHandler
Handler StaticFile
Error Code 0x80070002
【问题讨论】:
标签: c# asp.net asp.net-mvc iis-8