Don't use web exceptions in non-handler layer, create custom exception, catch it above and reraise with required web error.