Пользовательский приемник Microsoft ASP.NET WebHooks получает несколько попыток - PullRequest
0 голосов
/ 25 июня 2018

Я реализовал пользовательский приемник для Microsoft ASP.NET WebHooks, внедрив WebHookHandler.

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 голосов
/ 25 июня 2018

Попробуйте добавить приведенный ниже код в 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 раза.

...