C# 如何在到达委派处理程序之前跟踪或记录对自托管ASP.NET WebApi的请求?
我有一个自托管WebApi 1和一个Costam跟踪器 当存在有效的请求和响应时,所有内容都被正确记录和跟踪;但是,当存在大小大于默认maxRequestLength的POST请求时,服务器将向客户端返回400(错误请求),管道中的执行将终止。因此,跟踪器将永远不会捕获错误 查看ASP.NET WebApi消息生命周期图,我假设400响应是在跟踪程序在管道中开始其作业之前生成并返回的 考虑到可以在Global.asax(on_error method)上轻松捕获此类错误,在自托管WebApi中捕获错误的解决方案是什么C# 如何在到达委派处理程序之前跟踪或记录对自托管ASP.NET WebApi的请求?,c#,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,我有一个自托管WebApi 1和一个Costam跟踪器 当存在有效的请求和响应时,所有内容都被正确记录和跟踪;但是,当存在大小大于默认maxRequestLength的POST请求时,服务器将向客户端返回400(错误请求),管道中的执行将终止。因此,跟踪器将永远不会捕获错误 查看ASP.NET WebApi消息生命周期图,我假设400响应是在跟踪程序在管道中开始其作业之前生成并返回的 考虑到可以在Global.asax(on_error method)上轻松捕获此类错误,在自托管WebApi中捕
提前感谢。我假设您使用的是Web API 1自助主机。在封面下,这是一个WCF服务主机。MaxRequestLength是一个WCF的东西 因此,如果您想捕获它,您需要下拉到WCF自定义和配置。如果您创建一个从HttpSelfHostConfiguration派生的配置类,那么会有一个重载,允许您配置绑定,使用大量的WCF魔法,您可能可以捕获错误 我的猜测是,它不会很漂亮
我的第一个建议是研究WebAPI 2 Owin HttpListener主机。这不是基于WCF的,您可能会发现捕获此类问题更容易。老实说,我真的不知道Owin HTTPListener主机是否有一个与MaxRequestLength等效的内置函数,实际上您可能需要自己将其构建为MessageHandler。完美!我完全忘了奥文。我想我现在可以修好了。tnx