Microsoft ASP.NET WebHooks自定义接收器多次尝试

时间:2018-06-25 14:13:04

标签: asp.net webhooks asp.net-webhooks

我已经通过实现WebHookHandler为Microsoft ASP.NET WebHooks实现了自定义接收器。

public class Web_WebHookHandler : WebHookHandler
    {
        public Web_WebHookHandler()
        {
            this.Receiver = CustomWebHookReceiver.ReceiverName;
        }
        public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {                
            SendNotification();               
            return Task.FromResult(true);
        }

        private  void SendNotification()
        {
            Task.Factory.StartNew(() => {
               // doing some processing 
            });
        }
    }

无论何时触发任何事件,它都会击中我上面的接收器3次。我已经尝试了一切,但没有任何改变。请帮我解决一下。

1 个答案:

答案 0 :(得分:0)

尝试在返回之前在ExecuteAsync中添加以下代码。 .i.e。

context.Response = new System.Net.Http.HttpResponseMessage (System.Net.HttpStatusCode.Gone);
return Task.FromResult(true);

实际上,webhooks调度程序会检查您的接收方的响应,并在未发送回正确响应的情况下重试。因此,为了告诉调度员请求已经处理并且一切正常,您需要设置context.Response并返回Task.FromResult(true)。 否则,它将至少尝试3次。