为什么MVC无法处理所有情况

时间:2019-05-17 01:27:53

标签: asp.net-mvc

我的RouteConfig类中包含以下代码:

routes.MapRoute(
   "Default",
   "{controller}/{action}/{id}",
   new { controller = "Home", action = "Index", id = UrlParameter.Optional },
   new { controller = new AllowedRoutes("List|Of|Allowed|Controllers|") },
   new[] { "My.Project.App.Controllers.*" }
  );

routes.MapRoute(
   "404-PageNotFound",
    "{*url}",
     new { controller = "Error", action = "CustomHttpError404" }
);

现在我还有一个名为AllowedRoutes的类,该类与上面的列表匹配,如果匹配,则返回true。

我还在我的web.config中启用了自定义错误:

<customErrors mode="On" redirectMode="ResponseRewrite">
  <error statusCode="400" redirect="~/Error/BadRequest" />
  <error statusCode="403" redirect="~/Error/BadRequest" />
  <error statusCode="404" redirect="~/Error/NotFound" />
  <error statusCode="500" redirect="~/Error/Index" />
</customErrors>

在大多数情况下,这种方法都能正常工作。但是,如果我在自己的网站上尝试以下操作:

https://example.com/,13.67.141.98

然后我得到以下错误,而不是被重定向到正确的404错误页面

  

您要查找的资源已被删除,名称已更改或暂时不可用。

有什么想法吗?谢谢。

编辑1:这似乎发生在Azure而非本地。

编辑2:它是一个网络应用程序

0 个答案:

没有答案