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

时间:2015-11-01 19:23:46

标签: github asp.net-mvc-5 webhooks

我已实施this tutorial。使用MVC 5.我从nuget添加了包:Microsoft.AspNet.WebHooks.Recievers.GitHub并在App_Start文件夹中创建了一个WebApiConfig.cs类。从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控制台。

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

1 个答案:

答案 0 :(得分:0)

本教程实际上非常有用。这不是问题。在深入研究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”事件,而这段代码就说明了一切。

在提交之后,生成一个真实事件,我的处理程序按预期到达。