WebHookRoutingProvider doesn't actually throw in all attribute routed cases, only when an attribute route on an action provides a Template. Should check the ControllerModel for an attribute route and check both WebHook actions and containing controllers for an HttpMethodActionConstraint i.e. the result of an applied IActionHttpMethodProvider (see DefaultApplicationModelProvider).
Should probably also check for IConsumesActionConstraints since [Consumes] interferes with WebHookEventNamesConstraints and WebHookVerifyBodyTypeFilters.
Suggest doing this work post-Preview2. Basically about clarifying error messages in problematic cases.
Splitting out from #248 (see this comment):
Suggest doing this work post-Preview2. Basically about clarifying error messages in problematic cases.