asp.net-mvc - ASP.NET MVC 4 Catch-all 只在本地触发,而不是远程请求

标签 asp.net-mvc iis asp.net-mvc-4 iis-7.5

在 ASP.NET MVC 4 应用程序中,我们设置了一个包罗万象的路由,如下所示:

routes.MapRoute( 
     name: "UnKnown",  
     url: "{*url}",  
     defaults: new { controller = "CatchAll", action = "UnknownUrl" });

CatchAllController 中的 UnknownUrl 方法在我们的开发环境中正确加载了它的 View 。

但是,生产 IIS 7.5 显示其 如果远程请求不存在,则标准 404 页面 到达。 A 本地请求 ,在服务器本身上使用 RDP 发送,工作正常 .

web.config 设置为 tp
<customErrors mode="Off"/>

本地调用和远程调用之间还有什么其他区别? 我们如何让 MVC HttpHandler 捕获这些请求?

A 提示 可能是我们也无法让 IIS 在远程调用时显示任何详细的状态 500 错误消息。

最佳答案

我遇到了 IIS 显示默认错误而不是 .NET 错误的问题,我已在 system.webServer 中使用以下内容修复了该问题。在 web.config 中:

<httpErrors existingResponse="PassThrough"/>

我认为如果在您的 UnknownUrl 中会发生这种情况您正在设置的操作 Response.StatusCode = 404; .默认情况下,IIS 会看到您正在返回错误代码,因此会显示一条默认错误消息,您可以使用该配置设置覆盖该消息。

我不确定这在本地 v 远程上会有所不同,但值得一试。

关于asp.net-mvc - ASP.NET MVC 4 Catch-all 只在本地触发,而不是远程请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16185528/

相关文章:

c# - 运算符 '==' 不能应用于操作数 'method group' 或 'string'

c# - 使用 ASP.NET 和 Azure 创建云存储应用程序

iis - 阻止我的机器人应用程序发布到 IIS Web 服务器的 "AppOffline"是什么?

c# - application_error 中的 Response.write 不起作用?

c# - 从 Web API Controller 重定向 POST 请求时处理 100-continue

asp.net-mvc-4 - 如何在 Durandal 中使用 cshtml 文件?

asp.net-mvc - 我可以在 LESS css 中使用 url 参数吗?

c# - 尝试在数据库表中插入新条目时出现 LINQ to SQL 异常

asp.net-mvc - Asp.net mvc 站点地图中的动态 Url 和标题

c# - 我无法弄清楚 RouteConfig.cs 文件