如何防止使用 ServiceStack 将失败的请求记录到 favorite.ico

How to prevent the logging of a failed request to favorite.ico with ServiceStack

这将是围绕 favorite.ico 和 ServiceStack 网络服务框架的第 5 个此类问题。我了解未找到日志记录资源背后的基本原理,并且大多数解决方法都使用内置的未找到处理程序,例如

appHost.CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => {
   if (pathInfo.StartsWith("favicon"))
      return new NotFoundHttpHandler();
});

但这仍然会向日志基础结构记录异常。有没有一种方法可以两全其美,在找不到资源时记录,而不记录 favorite.ico 的请求。我必须写代码吗?代码吓到我了:)

谢谢, 斯蒂芬

日志记录在 NotFoundHttpHandler 本身中,因此为了避免记录你会 return 一个不记录的自定义 HttpHandler,例如:

appHost.CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => {
   if (pathInfo.StartsWith("/favicon"))
      return new CustomActionHandler((req,res) => {
          res.StatusCode = 404;
          res.StatusDescription = "Favicon not found";
          res.EndRequest();
      });
   return null;
});