我的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:它是一个网络应用程序