2

我通过实现 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 次。我已经尝试了一切,但没有任何区别。请帮我整理一下。

4

1 回答 1

0

ExecuteAsync尝试在返回之前添加波纹管代码。。IE

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

实际上,webhooks 调度程序检查来自您的接收器的响应,如果没有发回正确的响应,则重试。因此,为了告诉调度员请求已被处理并且一切正常,您需要设置context.Response并返回Task.FromResult(true)。否则它将继续尝试至少 3 次。

于 2018-06-25T14:48:18.723 回答