首页 > 解决方案 > REST API 不会触发 DelegatingHandler,只有 swagger 会

问题描述

我需要在我的 c# API 中记录请求和响应,我尝试使用 DelegatingHandler 类方法。

我还在 API 上运行了 swashbuckle/swagger。处理程序似乎工作正常,但它只触发和记录招摇的调用。当我调用任何 API 函数时它不会触发。访问位于服务器文件夹中的图像时,它甚至不会触发。但如果路径与招摇相关,它总是会触发。

public static void Register(HttpConfiguration config)
    {
        config.MessageHandlers.Add(new MessageLoggingHandler());
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: null,
            handler: new MessageLoggingHandler()
        );
        config.MapHttpAttributeRoutes();
       }

这就是我到目前为止所得到的。有什么线索吗?

标签: c#.netrestswagger

解决方案


我认为它不适用于访问文件,因为它只是控制器方法的中间件。尝试直接调用您的方法 - 如果您的处理程序有效。然后,为了记录对服务器上文件的请求,您也需要检查 IIS 的一些“下级”记录器


推荐阅读