apns-csharp 证书问题
Posted
技术标签:
【中文标题】apns-csharp 证书问题【英文标题】:apns-csharp certificate trouble 【发布时间】:2010-10-17 23:17:31 【问题描述】:我尝试使用 apns-csharp 库从 .NET 发送推送通知,我在 Apple Provision Portal 上创建了证书,下载它并转换为 p12 格式,当我尝试使用代码加载它时:
private ActionResult SendAlertPushNotification(string appId, string notificationContent, bool useSandBox)
NotificationService notificationService = new NotificationService(useSandBox,ApplicationsRepository.GetAPNSCertificateForApplication(appId,useSandBox),"123",1);
notificationService.ReconnectDelay = 2000;
notificationService.Error += new NotificationService.OnError(service_Error);
notificationService.NotificationTooLong += new NotificationService.OnNotificationTooLong(service_NotificationTooLong);
notificationService.BadDeviceToken += new NotificationService.OnBadDeviceToken(service_BadDeviceToken);
notificationService.NotificationFailed += new NotificationService.OnNotificationFailed(service_NotificationFailed);
notificationService.NotificationSuccess += new NotificationService.OnNotificationSuccess(service_NotificationSuccess);
notificationService.Connecting += new NotificationService.OnConnecting(service_Connecting);
notificationService.Connected += new NotificationService.OnConnected(service_Connected);
notificationService.Disconnected += new NotificationService.OnDisconnected(service_Disconnected);
var devices = ApplicationsRepository.GetPushClientDevicesID(appId);
foreach (var token in devices)
var notification = new Notification(token);
notification.Payload.Alert.Body = notificationContent;
notification.Payload.Sound = "default";
notification.Payload.Badge = 1;
//Queue the notification to be sent
if (notificationService.QueueNotification(notification))
Debug.WriteLine("Notification Queued!");
else
Debug.WriteLine("Notification Failed to be Queued!");
notificationService.Close();
ViewData["app"] = ApplicationsRepository.GetApplicationByAppId(appId);
ViewData["count"] = devices.Count;
return View("SendSuccess");
我在尝试加载证书时收到内部错误。如果我使用 .cer 格式的原始证书,我不会收到任何异常,但实际上没有任何内容发送到 APNS 服务器。有人遇到过这个问题吗?
【问题讨论】:
【参考方案1】:确保您已导出正确的证书。最近遇到类似的问题才发现导出错了。
OSX 钥匙串 创建完之后 适当的推送通知 iPhone 开发者证书 您应该拥有的程序门户 下载了一个类似的文件 apn_developer_identity.cer。如果你 还没有这样做,你应该 打开/将此文件导入钥匙串, 进入您的登录部分。
最后,如果您将 Keychain 过滤为 显示您的登录容器 证书,你应该看到你的 列出的证书。展开 证书,并且应该有一个Key 在下面/附在它上面。
右键单击或 Ctrl+单击 适当的证书并选择 出口。钥匙串会要求你 选择要导出到的密码。挑选 一个并记住它。你应该结束 带有 .p12 文件。你会需要这个 文件和您选择的密码 使用通知和反馈 图书馆在这里。
来源How To Create a PKCS12 Certificate
我相信你现在已经以某种方式解决了这个问题,但是我自己刚刚经历过这个,我认为把我的经历写下来可能会很好。 p>
【讨论】:
谢谢@ashansky - 我花了一段时间才弄清楚如何做到这一点 - 你的方向是正确的。以上是关于apns-csharp 证书问题的主要内容,如果未能解决你的问题,请参考以下文章