Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 405上未调用异常筛选器和处理程序_Asp.net Web Api_Asp.net Web Api2 - Fatal编程技术网

Asp.net web api 405上未调用异常筛选器和处理程序

Asp.net web api 405上未调用异常筛选器和处理程序,asp.net-web-api,asp.net-web-api2,Asp.net Web Api,Asp.net Web Api2,在我的WebApi应用程序中,我有一个异常过滤器 config.Filters.Add(New AppExceptionFilterAttribute) 过滤器只是将异常重新格式化为我喜欢的格式。当出现应用程序错误时,它一直工作正常。但是今天我遇到了一个以前从未见过的错误,一个405,由于某种原因,这个过滤器根本没有被调用 我尝试添加全局异常处理程序: config.Services.Replace(GetType(ExceptionHandling.IExceptionHan

在我的WebApi应用程序中,我有一个异常过滤器

    config.Filters.Add(New AppExceptionFilterAttribute)
过滤器只是将异常重新格式化为我喜欢的格式。当出现应用程序错误时,它一直工作正常。但是今天我遇到了一个以前从未见过的错误,一个405,由于某种原因,这个过滤器根本没有被调用

我尝试添加全局异常处理程序:

    config.Services.Replace(GetType(ExceptionHandling.IExceptionHandler), New AppExceptionHandler())
但这也不是所谓的!似乎当我得到一个405时,WebApi坚持自己处理这个问题,不调用我的过滤器或处理程序,因此我无法按照我想要的方式重新格式化异常,这真的很烦人


如何挂接该405错误?

Web Api中的异常处理针对未处理的异常,因此不会考虑404 Not Found和405 Method Not Allowed之类的响应。

您的操作是否收到了该请求?我认为405是在服务器级别抛出的,服务器不允许使用这种方法。不,它根本没有到达操作,但是它抛出了一个框架异常,我正在尝试过滤该异常,以便我可以按照我喜欢的方式格式化响应。所以在这些情况下,没有办法自定义响应?考虑到WebApi中的所有东西通常都是可插拔的,这似乎令人惊讶。