Как разрешить прерванный запрос на ожидаемый вызов 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#, которую вы можете использовать.

Другие вопросы по тегам