我使用的是PushSharp 4.0.10,MVC 4与c#
在apns经纪人的notificationfailefect事件中,我得到了ConnectionError例外。
此例外突然发生在更改证书(.p12)文件之后;在更改之前,它运行良好。
请建议如何对此错误进行故障排除。
var certificate = System.IO.File.ReadAllBytes(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Mobile/consumer_dev.p12"));
var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Sandbox, certificate, "", true);
var apnsBroker = new ApnsServiceBroker(config);
apnsBroker.OnNotificationFailed += (notification, aggregateEx) => {
aggregateEx.Handle (ex => {
if (ex is ApnsNotificationException) {
var notificationException = (ApnsNotificationException)ex;
var apnsNotification = notificationException.Notification;
var statusCode = notificationException.ErrorStatusCode;
Debug.WriteLine(apnsNotification.Identifier + ", " + statusCode);
} else {
Debug.WriteLine(ex.InnerException);
}
return true;
});
};
apnsBroker.OnNotificationSucceeded += (notification) => {
Debug.WriteLine("Apple Notification Sent!");
};
apnsBroker.Start();
foreach (var deviceToken in to)
{
apnsBroker.QueueNotification(new ApnsNotification
{
DeviceToken = deviceToken,
Payload = JObject.Parse("{"aps":" + aps.ToString().Replace('=', ':') + "}")
});
}
apnsBroker.Stop();
此错误是因为未启用您使用的证书。
您必须从Apple ID启用它,然后创建新的证书(.12)和配置资料。
尝试使用新证书可以解决您的错误。
尝试仅通过第一个参数将两个参数传递给apnsconfiguration构造器,否则请删除ValidateIsapnScertificate(BOOL)参数。前三个参数对我来说很好。
var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, appleCert, P12Password);