Microsoft.AspNet.WebHooks.Receivers.* MVC 5 未注册处理程序

Microsoft.AspNet.WebHooks.Receivers.* MVC 5 Not registering Handler

我已经实现了this tutorial。使用 MVC 5。我从 nuget 添加了包:Microsoft.AspNet.WebHooks.Recievers.GitHub 并在 App_Start 文件夹中创建了一个 WebApiConfig.cs class。从 GitHub 发送时,我收到状态 200 ok 消息,因此路由正常工作并得到响应。

然后我创建了一个 webhook 处理程序来处理请求,这是代码。

{
public class GitHubHandler : WebHookHandler
{
    public GitHubHandler()
    {
        this.Receiver = "github";
    }

    public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
    {
        string action = context.Actions.First();
        JObject data = context.GetDataOrDefault<JObject>();

        Debug.WriteLine("Made it to reciever");

        return Task.FromResult(true);
    }
}

}

而且我无法在此处命中调试点或写入 dubug 控制台。

我想知道我的应用程序是否没有自动注册?或者我错过了什么?

这个教程真的很管用。这不是问题。在深入研究 Microsoft.AspNet.Webhooks.Reciever.GitHub 中的代码后,我发现了这个:

            // If this is a ping request then just return. Otherwise call handlers.
        if (string.Equals(actions.FirstOrDefault(), PingEvent, StringComparison.OrdinalIgnoreCase))
        {
            return request.CreateResponse();
        }

然后我意识到 GitHub 测试传递消息只发送一个 "ping" 事件,这段代码说明了一切。

提交并生成真实事件后,我的处理程序已按预期到达。