我已经通过实现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次。我已经尝试了一切,但没有任何改变。请帮我解决一下。
答案 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次。