C# APNS输入字符串的格式不正确。断开的

C# APNS输入字符串的格式不正确。断开的,c#,ios,push-notification,apple-push-notifications,moonapns,C#,Ios,Push Notification,Apple Push Notifications,Moonapns,我正在尝试设置apple推送通知,我正在为服务器编写自己的代码,据我所知,我已经正确设置了应用程序。我如何不断从日志中返回以下错误: 收到有效负载队列。连接到苹果服务器。创建SSL 连接。连接。为生成的有效负载 “令牌在这里,我删除了它: {“aps”:{“警报”:“测试”,“徽章”:1,“声音”:“默认”}通知 已成功发送到设备的APNS服务器: “这里的令牌我已经删除了”一个 读取令牌的Apple响应时出错 “这里的令牌我已将其删除”- 输入字符串的格式不正确。已断开连接 这是我的密码 va

我正在尝试设置apple推送通知,我正在为服务器编写自己的代码,据我所知,我已经正确设置了应用程序。我如何不断从日志中返回以下错误:

收到有效负载队列。连接到苹果服务器。创建SSL 连接。连接。为生成的有效负载 “令牌在这里,我删除了它: {“aps”:{“警报”:“测试”,“徽章”:1,“声音”:“默认”}通知 已成功发送到设备的APNS服务器: “这里的令牌我已经删除了”一个 读取令牌的Apple响应时出错 “这里的令牌我已将其删除”- 输入字符串的格式不正确。已断开连接

这是我的密码

var push = new PushNotification(true, @"C:\wwwroot\UltraNet\PushService\bin\Debug\206dist.p12", "ultrait");

var payload = new NotificationPayload("devicetoken here ive deleted it", "test", 1, "default");
var p = new List<NotificationPayload> { payload };

var result = push.SendToApple(p);
Console.ReadLine();
var push=new PushNotification(true,@“C:\wwwroot\UltraNet\PushService\bin\Debug\206dist.p12”,“ultrait”);
var payload=新通知有效载荷(“devicetoken here I deleted it”,“test”,1,“default”);
var p=新列表{payload};
var结果=推送发送应用程序(p);
Console.ReadLine();
我已确保证书等设置正确

目前,我正在将其作为一个临时应用程序进行测试,因为新版本需要很长时间才能上线

我真的不知道我哪里做错了如果有人能帮上忙那就太好了谢谢

我也不知道我需要如何处理我创建的PEM文件

编辑***

我有正确的令牌这是我收到的另一个错误

为生成的有效负载 df99286a1cb993cecba86b2e21f3fc4c04d214fcf7e0cf35a668fc822bdaa053: {“aps”:{“警报”:“测试”,“徽章”:1,“声音”:“默认”}通知 已成功发送到设备的APNS服务器: df99286a1cb993cecba86b2e21f3fc4c04d214fcf7e0cf35a668fc822bdaa053 已断开连接。读取令牌的Apple响应时出错 df99286a1cb993cecba86b2e21f3fc4c04d214fcf7e0cf35a668fc822bdaa053- 安全手柄已经关闭


根据
ReadResponse
(见下文)的代码,
输入字符串的格式不正确
错误消息指的是从Apple收到的响应,而不是您发送的通知。 代码未能正确读取来自Apple的错误响应

如果它成功读取响应,您将知道确切的故障是什么以及哪些消息失败。由于您没有错误响应,因此可以肯定的是,问题出在您的设备令牌上。这是最常见的故障。如果您可以隔离发生错误的设备令牌,则只需删除该tok即可当您尝试在推送到生产环境或vica时使用沙盒令牌时,通常会发生无效设备令牌错误

private void ReadResponse(IAsyncResult ar)
{
    if (!_conected)
        return;
    string payLoadId = "";
    int payLoadIndex = 0;
  try
  {
    var info = ar.AsyncState as MyAsyncInfo;
    info.MyStream.ReadTimeout = 100;
    if (_apnsStream.CanRead)
    {
      var command = Convert.ToInt16(info.ByteArray[0]);
      var status = Convert.ToInt16(info.ByteArray[1]);
      var ID = new byte[4];
      Array.Copy(info.ByteArray, 2, ID, 0, 4);

      payLoadId = Encoding.Default.GetString(ID);
      payLoadIndex = ((int.Parse(payLoadId)) - 1000);
      Logger.Error("Apple rejected palyload for device token : " + _notifications[payLoadIndex].DeviceToken);
      Logger.Error("Apple Error code : " + _errorList[status]);
      Logger.Error("Connection terminated by Apple.");
      _rejected.Add(_notifications[payLoadIndex].DeviceToken);
      _conected = false;
    }
  }
  catch (Exception ex)
  {
      Logger.Error("An error occurred while reading Apple response for token {0} - {1}", _notifications[payLoadIndex].DeviceToken, ex.Message);
  }
}

这一切都与我的证书有关。
因为我没有将我的组合PEM证书返回到p12文件。

感谢您的快速响应@Eran,就我所知,我们使用的设备令牌是正确的,我已经在应用程序中编写了代码,该应用程序将为我提供相同的设备令牌。我还使用城市飞艇上的设备令牌进行了测试,它在你有什么其他建议吗?你能解释一下吗?我有我的p12文件,但我仍然有奇怪的错误。现在,在生产中,我在这一行得到了一个“输入字符串格式不正确”:payLoadIndex=((int.Parse(payLoadId))-1000);payLoadId是“\0\0\0\0”