如何捕获由于ASP.NET中无法识别的URL路径而导致的错误?

斯滕·彼得罗夫(Sten Petrov)

我有一个ASP.NET服务,该服务已经config.Services.Replace(typeof(IExceptionHandler), new MyExceptionHandler());在其中跟踪特定的错误,因此没有什么特别的。

我想更具体地说明如何跟踪无效URL的情况。例如,如果我的服务具有/api/controller/../method/..与请求URL中的各种路径相对应的控制器/方法,则我想使用特殊标志跟踪与任何控制器/方法都不匹配的请求,以轻松地对其进行过滤-我不希望来查看所有随机数据/bot/probing.phphack/seeking.jsp(1)污染我的常规日志(2)丢失并且没有及时注意到。

理想情况下,如果可能的话,我也想断开连接并且不使用HTTP 500响应调用者

谢尔盖·库托尔诺伊(Sergey Khutornoy)

WebAPI OWIN中间件无法处理的请求将传递到OWIN管道中的下一个中间件。这意味着您可以在WebAPI中间件之后添加自定义中间件,以处理与任何控制器/操作对都不匹配的请求。

另外,如果您所有的REST API端点都有一个基本路径,则/api可以将WebAPI和您的自定义中间件映射到该基本路径,以排除/bot/probing.php处理中对随机URL(例如)的请求

配置上述管道的OWIN Startup类可以如下:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.Map(
            "/api",
            apiApp =>
                {
                    var config = new HttpConfiguration();
                    WebApiConfig.Register(config);

                    app
                        .UseWebApi(config)
                        .Use(async (ctx, next) =>
                            {
                                Trace.TraceError(
                                    "WebApi routing error: {0}{1}",
                                    ctx.Request.PathBase, 
                                    ctx.Request.Path);
                                await next();
                            });
                });
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

由于objectMapper.writeValueAsString的O / P格式错误,导致无法识别的字段异常

来自“asp:Repeater”中的无法识别的字段错误

asp.net中无法识别的转义字符

尝试捕获,如何使程序捕获无法识别的值

JQUERY:未捕获的错误:无法识别的表达式

未捕获的错误:语法错误,无法识别的表达式:选择器中的double等于==

如何修复ipykernel_launcher.py:错误:jupyter中无法识别的参数?

如何使用动态模型修复Stargazer中无法识别的对象错误?

如何修复 VS Code 中的 pylint“无法识别的选项”错误?

如何摆脱eclipse中的“无法识别的选项:--module-path”错误?

bash中无法识别的命令被python解释器捕获

由于MKPointAnnotation上无法识别的选择器而导致崩溃

特殊字符会导致ASP.NET中的URL错误

Laravel-当CSFR错误时,由于POST请求,如何捕获“ HttpExceptions”?

jQuery错误-未捕获的错误:语法错误,无法识别的表达式

由于未捕获的TypeError如何创建空数组:无法读取null的属性“长度”

如何捕获ASP.Net中的HTTPResponseBody数据?

Julia 1.4:由于无法识别的URL前缀而无法安装任何软件包

由于“〜”,Bash终端无法识别变量中的路径

在ASP.NET Core 3.1 Web应用程序中获取“无法识别的SameSiteMode值-1” InvalidOperationException

未捕获的错误:语法错误,无法识别的表达式 - JQuery 3.2.1

jQuery-未捕获的错误:语法错误,无法识别的表达式

出现未捕获的错误:语法错误,无法识别的表达式

JavaScript — 未捕获的错误:语法错误,无法识别的表达式:[href=#contact] (WordPress)

未捕获的错误:语法错误,无法识别的表达式:不支持的伪:

未捕获的错误:语法错误,无法识别的表达式:#某些内容

JQuery JS未捕获的错误:语法错误,无法识别的表达式:

未捕获的错误:语法错误,使用 replaceWith 时无法识别的表达式

未捕获的错误、语法错误、无法识别的表达式 [JQUERY]