2012-06-15 47 views
1

我使用月亮aspn库在asp.net和c#中发送推送通知。我遇到以下错误:Call to SSPI Failed;在内部例外我有:Unknown error while processing the certificate; error code: -2147467259推送通知iPhone错误(月亮ASPN)

这里是我的代码:

private void SendQueueToapple(IEnumerable<NotificationPayload> queue) 
{ 
    int i = 1000; 
    foreach (var item in queue) 
    { 
     if (!_conected) 
     { 
      Connect(_host, NotificationPort, _certificates); 
      var response = new byte[6]; 
    --> --> --> _apnsStream.BeginRead(response, 0, 6, ReadResponse, new MyAsyncInfo(response, _apnsStream));<-- <-- <-- 
     } try { 
      if (item.DeviceToken.Length == 64) //check lenght of device token, if its shorter or longer stop generating Payload. 
      { 
       item.PayloadId = i; 
       byte[] payload = GeneratePayload(item); 
       _apnsStream.Write(payload); 
       Logger.Info("Notification successfully sent to APNS server for Device Toekn : " + item.DeviceToken); 
       Thread.Sleep(1000); //Wait to get the response from apple. 
      } 
      else 
       Logger.Error("Invalid device token length, possible simulator entry: " + item.DeviceToken); 
     } 
     catch (Exception ex) 
     { 
      Logger.Error("An error occurred on sending payload for device token {0} - {1}", item.DeviceToken, ex.Message); 
      _conected = false; 
     } 
     i++; 
    } 
} 

回答

0

这可能是一个证书相关的问题。您必须创建.cer和.p12文件。密切关注这些文件。你首先生成.cer,我不会在这里详细介绍。有足够的材料可用。生成.p12文件时出现问题。

在您的Mac中,转到钥匙串访问。从左侧窗格中选择“我的证书”。你会看到一张证书列表。选择您为推送通知生成的证书。右键单击并导出。确保你的不要扩展证书执行此私钥上的步骤。这就是事情开始出错的地方。