2016-08-10 73 views
0

我在等待使用Aero Gear .Net client發送推送通知的呼叫。呼叫推送的返回值是System.Net.HttpStatusCode。推送成功的預期代碼是「已接受」。如何解決等待調用HttpStatusCode的中止請求?

但是當我等待調用SendPushNotification方法,從方法返回前HttpStatusCode在這條線,它拋出一個"The request was aborted. The connection was closed unexpectedly"錯誤:

System.Net.HttpStatusCode status = await client.Send(unifiedMessage);  

標誌着我來自控制器的召集對推方法async,並添加了等待在哪裏有一個異步方法的調用。

問:

你怎麼能解決在等待調用HttpStatusCode中止請求嗎?

這是呼叫的要旨從初始呼叫在控制器到推類方法流下:

控制器:

//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; 
} 
+0

你確定你的方法'SendPushNotification()'不會拋出任何異常嗎? – Rahul

回答

1

我認爲你需要檢查的狀態碼是HttpStatusCode.OK,我很確定你得到的錯誤:「請求被中止。意外關閉」的連接是一個例外。你確定了AeroGear服務器正在運行,而且你不需要代理服務器配置爲您PushsClassLibrary

否則AeroGear項目也有一個C# sender library,你可以使用。

+0

這就是我正在使用的庫。代理配置在那裏我已經隱藏了它並顯示了代碼的要點。 –