GenericJson WebHook возвращает неверный запрос - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь реализовать WebHook для события BuildCompleted.Я застрял с ошибкой: Bad Request (400) при тестировании сервисного хука из веб-интерфейса.Кажется, что нет подробной информации об ошибке в журнале событий или файлах журнала IIS.Функция Register в WebApiConfig нажата, но конструктор или ExecuteAsync в моем WebHook нет.

Любая помощь будет принята с благодарностью!Я уверен, что это просто тривиально, что я просто вижу себя.

Моя установка состоит из предварительно установленного сервера TFS 2018 Update 2 и отдельного Windwos Server 2012 с IIS для WebHook.Я развертываю Global.asax и web.config для wwwroot, а сборки для wwwroot / bin.

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

Это был просто вопрос GenericJsonWebHookReceiver, требующий https, который фактически указан в документации.

GenericJsonWebHookReceiver class decleration

Я был сброшен TFSСлужебный хук добавляет только экран, рекомендуя https: enter image description here

Этот ответ побудил меня взглянуть поближе на ответ в исключении из GetResponse позвоните в службу.

{"Message": "Для обеспечения безопасности приемнику WebHook 'GenericJsonWebHookReceiver' требуется HTTPS. Пожалуйста, зарегистрируйте URI WebHook типа 'https'."}

...