Apple通知失败:ID = 2,Code = ConnectionError



我正在使用pusphsharp 4.0.4,从nuget安装

在APNS经纪人的OnnotificationFailed(APNSnotification,ExcregateCeption)事件中,我经常得到此例外:

Apple通知失败:ID = 2,Code = ConnectionError。

根据我的说法,它由于P12文件而出现。它可能没有外部API访问的所有权利。

private void SendPushNotification(string deviceToken, string message)
{
    try
    {
        //Get Certificate
        var appleCert = System.IO.File.ReadAllBytes(HttpContext.Current.Server.MapPath("Certificates.p12"));
        //Configuration(NOTE: .pfx can also be used here)
        var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Sandbox ,appleCert, "1234567890");
        //Create a new broker
        var apnsBroker = new ApnsServiceBroker(config);
        //Wire up events
        apnsBroker.OnNotificationFailed += (notification, aggregateEx) =>
        {
            aggregateEx.Handle(ex =>
            {
                // See what kind of exception it was to further diagnose
                if (ex is ApnsNotificationException)
                {
                    var notificationException = (ApnsNotificationException)ex;
                    // Deal with the failed notification
                    var apnsNotification = notificationException.Notification;
                    var statusCode = notificationException.ErrorStatusCode;
                    string desc = $"Apple Notification Failed: ID={apnsNotification.Identifier}, Code={statusCode}";
                    Console.WriteLine(desc);
                    lblStatus.Text = desc;
                }
                else
                {
                    string desc = $"Apple Notification Failed for some unknown reason : {ex.InnerException}";
                    // Inner exception might hold more useful information like an ApnsConnectionException           
                    Console.WriteLine(desc);
                    lblStatus.Text = desc;
                }
                // Mark it as handled
                return true;
            });
        };
        apnsBroker.OnNotificationSucceeded += (notification) =>
        {
            lblStatus.Text = "Apple Notification Sent successfully!";
        };
        var fbs = new FeedbackService(config);
        fbs.FeedbackReceived += (string devicToken, DateTime timestamp) =>
        {
            // Remove the deviceToken from your database
            // timestamp is the time the token was reported as expired
        };
        //Start Proccess
        apnsBroker.Start();
        if (deviceToken != "")
        {
            apnsBroker.QueueNotification(new ApnsNotification
            {
                DeviceToken = deviceToken,
                Payload = JObject.Parse(("{"aps":{"badge":1,"sound":"oven.caf","alert":"" + (message + ""}}")))
            });
        }
        apnsBroker.Stop();
    }
    catch (Exception)
    {
        throw;
    }
}

我使用的是从Nuget安装的PushSharp 4.0.4。

将在C#中运行APNS推送通知。我有一个错误:

Apple通知失败:ID = 1,Code = Connection Error

解决方案:

在此错误中,要导出钥匙链私有钥匙证书.p12格式并将证书重试。

最新更新