GenericJson WebHook返回错误请求

时间:2018-06-04 14:18:26

标签: tfs webhooks

我正在尝试为BuildCompleted事件实现WebHook。从Web界面测试服务挂钩时,我遇到错误: Bad Request(400)。似乎没有关于事件日志或IIS日志文件中的错误的详细信息。命中 WebApiConfig 中的 Register 函数,但我的WebHook中的构造函数或 ExecuteAsync 不是。

任何帮助都将受到高度赞赏!我确信我似乎能够看到自己是一件微不足道的事。

我的设置包括本地TFS 2018 Update 2服务器和带有IIS的WebHook的单独Windwos Server 2012。我将Global.asax和web.config部署到wwwroot,将程序集部署到wwwroot / bin。

网址:http://MYSERVER/api/webhooks/incoming/genericjson?code=83699ec7c1d794c0c780e49a5c72972590571fd8

的web.config:

...
<appSettings>
    <add key="MS_WebHookReceiverSecret_GenericJson" value="83699ec7c1d794c0c780e49a5c72972590571fd8" />
</appSettings>
...

WebHookHandler:

public class GenericJsonWebHookHandler : WebHookHandler
{
    public GenericJsonWebHookHandler()
    {
        this.Receiver = GenericJsonWebHookReceiver.ReceiverName;
    }

    public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
    {
        return Task.FromResult(true);
    }
}

WebApiConfig:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new {id = RouteParameter.Optional}
        );

        // Initialize GenericJson WebHook receiver
        config.InitializeReceiveGenericJsonWebHooks();
    }
}

的Global.asax.cs

public class Global : HttpApplication
{
    protected void Application_Start()
    {
        GlobalConfiguration.Configure(WebApiConfig.Register);
    }
}

1 个答案:

答案 0 :(得分:0)

这只是需要https的GenericJsonWebHookReceiver的问题,实际上是由文档指定的。

GenericJsonWebHookReceiver class decleration

我被TFS Service Hook添加屏幕抛弃,仅推荐https: enter image description here

This answer让我更加关注 GetResponse 对服务的调用中的响应。

  

{&#34;消息&#34;:&#34; WebHook接收器&#39; GenericJsonWebHookReceiver&#39;需要HTTPS以确保安全。请注册类型为&#39; https&#39;。&#34;}

的WebHook URI