Настройка (все компоненты написаны на 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;
}