Tôi đang sử dụng phiên bản 2.1.2 của PushSharp. Ứng dụng này là .NET 4.5.1 (mặc dù tôi cũng đã thử nhắm mục tiêu .NET 4.5 và .NET 4)PushSharp Apple - Thư nhận được không mong muốn hoặc bị định dạng sai
Tôi đang cố gắng nhưng không thành công gửi tin nhắn push thông qua hộp cát Apple APNS.
Tôi gửi thành công thư bằng cách sử dụng tập lệnh PHP được cung cấp here on Ray Wenderlich's walkthrough bằng cùng một chứng chỉ và gửi đến cùng một ID thiết bị như đối với ứng dụng PushSharp của tôi.
Tôi đã kiểm tra bằng cách xuất cert đã hoàn thành dưới dạng p12 từ chuỗi khóa. Xuất chứng chỉ và khóa đã hoàn thành. Đang xuất khóa cá nhân. Cũng theo phương pháp được sử dụng here. Khi tôi kết hợp cert và key để sử dụng trong kịch bản PHP, tôi không có vấn đề gì.
Tôi đã nhập chứng chỉ p12 vào các máy tôi đã thử nghiệm từ - dường như không tạo sự khác biệt.
Tôi đã thử thay đổi cờ IsProduction khi đăng ký dịch vụ đẩy táo cho nhà môi giới đẩy. Không có lỗi khi nó được thiết lập như sản xuất (mặc dù đây là một cert sandbox) tuy nhiên nó rõ ràng là không nhận được thông qua để các thiết bị trong trường hợp đó hoặc.
Không ai trong số các thông điệp của tôi sẽ đi qua, tất cả có được một ngoại lệ dịch vụ trông giống như sau:
System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The message received was unexpected or badly formatted
--- End of inner exception stack trace ---
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings settings, CancellationToken cancelToken)
at PushSharp.Apple.ApplePushService.<>c__DisplayClass4.<.ctor>b__1(Object state)
này về cơ bản là những gì mã của tôi trông giống như:
var push = new PushBroker();
// register event handlers for channel create/destroy/exception, notificationrequeue, serviceexception, notification sent
var appleCert = File.ReadAllBytes(ConfigurationManager.AppSettings["CertAddress"]);
push.RegisterAppleService(new ApplePushChannelSettings(false, appleCert, ConfigurationManager.AppSettings["CertPassword"]));
var pn = new AppleNotification().ForDeviceToken(item.SendToDeviceIdentifier).WithAlert(item.AlertMessage).WithBadge(item.Badges);
push.QueueNotification(pn);
tôi nhận được kênh lên sự kiện được gọi, và sau đó là ngoại lệ dịch vụ.
Một số câu hỏi liên quan đến lỗi này có thể liên quan đến sự cố tường lửa - Tôi đã thử nghiệm ứng dụng của mình ở 2 mạng khác nhau có thể gửi thông báo đẩy (1 trong số đó hiện đang sử dụng ứng dụng PushSharp).
Mọi thông tin chi tiết sẽ được đánh giá cao.
Tôi vừa đăng câu trả lời, hy vọng nó có thể hữu ích. http://stackoverflow.com/questions/23116726/pushsharp-notifications-to-ios-are-not-reaching-device/23121205#23121205 – dichen