Как разрешить прерванный запрос на ожидаемый вызов HttpStatusCode?
Я жду звонка, чтобы отправить push-уведомление с помощью клиента Aero Gear .Net. Возвращаемое значение при вызове push является System.Net.HttpStatusCode
, Ожидаемый код в случае успешного нажатия - "Принят".
Но когда я жду вызова метода SendPushNotification, он бросает "The request was aborted. The connection was closed unexpectedly"
Ошибка перед возвратом HttpStatusCode из метода в этой строке:
System.Net.HttpStatusCode status = await client.Send(unifiedMessage);
Я пометил вызов от контроллера до метода push как асинхронный и добавил ожидание там, где был вызов асинхронного метода.
Вопрос:
Как вы можете разрешить прерванный запрос на ожидаемый вызов HttpStatusCode?
Это суть вызова, проходящего от начального вызова в контроллере до метода класса push:
контроллер:
//In Controller Post action that calls SendPushNotification
[HttpPost]
public async Task<ActionResult> Index(Order exec_order)
{
try
{
//Send a push notification with the order details
try
{
MyLogger.FileLogger.Info("Before Push Notification");
System.Net.HttpStatusCode status = await PushsClassLibrary.PushNotification.SendPushNotification(exec_order.Application", "Order Summary");
MyLogger.FileLogger.Info("Push Notification Status: " + status);
}
catch (Exception ex) //request aborted error caught here
{
MyLogger.FileLogger.Error("Push Notification Exception -" + ex.Message);
}
}
Пуш-класс:
//In PushNotification class containing SendPushNotification
public static async Task<System.Net.HttpStatusCode> SendPushNotification(string messageToPush, string serviceName )
{
string[] listUsers = users.ToArray();
unifiedMessage.criteria.alias = listUsers;
System.Net.HttpStatusCode status = await client.Send(unifiedMessage);
return status;
}
1 ответ
Я думаю, что код статуса, который вы хотите проверить, HttpStatusCode.OK
и я почти уверен, что ошибка, которую вы получаете: "Запрос был прерван. Соединение было неожиданно закрыто" является исключением. Вы уверены, что сервер AeroGear запущен и вам не требуется настройка прокси для PushsClassLibrary
?
В противном случае у проекта AeroGear также есть библиотека отправителей C#, которую вы можете использовать.