Почему я не получаю ответ от своего приложения Listener при использовании гибридного подключения Microsoft Azure Relay Service (.NET) - PullRequest
0 голосов
/ 20 октября 2019

Настройка (все компоненты написаны на C #): (1) Служба API (Отправитель) отправляет запрос, содержащий пользовательские данные, в консольное приложение (Слушатель) через службу Microsoft Azure Relay. (2) Консольное приложение десериализует тело запроса и передает данные в функцию (3) Функция сохраняет данные в базе данных и отправляет ответ об успешном или неудачном возвращении в консольное приложение (прослушиватель). (4) Основываясь на ответе, полученном от функции, консольное приложение (Listener) отправляет ответ обратно в службу API

Проблема: Когда я отправляю запрос в API (проверено с помощью Postman), я не являюсьполучить любой ответ от приложения Listener. Я могу подтвердить, что шаги с 1 по 3, описанные выше, успешно выполнены, так как я вижу данные в базе данных, и я также могу проверить, что функция возвращает значение, когда я выполняю код.

Код приложения прослушивателя

            var registrant = JsonConvert.DeserializeObject<Registrant>(requestBody);
            var result = AddRegistrantToDB(registrant);

            if (result)
            {
                context.Response.StatusCode = HttpStatusCode.OK;
                context.Response.StatusDescription = "Added to the database";
                using (var sw = new StreamWriter(context.Response.OutputStream))
                {
                    sw.WriteLine("true");
                }
            }

            else
            {
                context.Response.StatusCode = HttpStatusCode.BadRequest;
                context.Response.StatusDescription = "Bad Request";
                using (var sw = new StreamWriter(context.Response.OutputStream))
                {
                    sw.WriteLine("false");
                }
            }
            await context.Response.CloseAsync();
            Console.WriteLine("Response Sent " + context.Response.StatusCode.ToString());

Код службы API

        var request = new HttpRequestMessage()
        {
            RequestUri = uri,
            Method = HttpMethod.Post,
            Content = stringContent
        };

        request.Headers.Add("ServiceBusAuthorization", token);

        var response = await client.SendAsync(request);

        if (response.StatusCode == HttpStatusCode.OK)
        {
            return true;
        }
        else
        {
            return false;
        }
...