我尝试使用PushSharpHttpTwo向苹果发送HTTP-2推送通知.这是我使用的代码:
var config = new ApnsHttp2Configuration(ApnsHttp2Configuration.ApnsServerEnvironment.Production, certificate, password);
var broker = new ApnsHttp2ServiceBroker(config);
broker.Start();
foreach (Device device in deviceCollection)
{
broker.QueueNotification(new ApnsHttp2Notification
{
DeviceToken = device.Token,
Topic = "com.nnnn.nnnnnn",
Payload = JObject.Parse("{ \"aps\" : { \"alert\" : \"Hello PushSharp!\" } }")
});
}
broker.Stop();这将导致以下错误:
System.Security.Authentication.AuthenticationException:对SSPI的调用失败,请参阅内部异常。-> System.ComponentModel.Win32Exception:收到的消息是意外的或格式错误的--从抛出异常的前一个位置开始的堆栈跟踪--在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务--在HttpTwo.Http2Connection.d__20.MoveNext()处--从抛出异常的前一个位置开始的堆栈跟踪的结束--在HttpTwo.Http2Client.d__19.MoveNext()上抛出异常的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务---从抛出异常的前一个位置-在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务-在HttpTwo.Http2Client.d__17.MoveNext()处的堆栈跟踪结束-从抛出异常的前一个位置的堆栈跟踪结束-在HttpTwo.Http2Client.d__15.MoveNext()处抛出System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务-从以前抛出异常的位置--在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务上)在C:\Users\MyUser\Folder\PushSharpHttpTwo\PushSharpHttpTwo-master\PushSharp.Apple\ApnsHttp2Connection.cs:line 99中的System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at PushSharp.Apple.ApnsHttp2Connection.d__10.MoveNext() --从抛出异常的前一个位置开始的堆栈跟踪-在系统上的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()。Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务( System.Runtime.CompilerServices.TaskAwaiter.GetResult() at PushSharp.Apple.ApnsHttp2ServiceConnection.d__2.MoveNext() in C:\Users\MyUser\Folder\PushSharpHttpTwo\PushSharpHttpTwo-master\PushSharp.Apple\ApnsHttp2ServiceConnection.cs:line 40 )
做了一些研究后,似乎这个错误与错误的TLS有关。或者,有人知道我为什么会在上面出错吗?
PS:当使用以下代码(没有HTTP-2)时,Apple Push通知工作得很好:
var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, certificate, password);
var apnsBroker = new ApnsServiceBroker(config);
apnsBroker.Start();
foreach (Device device in deviceCollection)
{
apnsBroker.QueueNotification(new ApnsNotification
{
DeviceToken = device.Token,
Payload = JObject.Parse("{ \"aps\" : { \"alert\" : '" + alert + "', \"badge\" : '" + AddBadge(device) + "', \"sound\" : \"default\" }}")
});
}
apnsBroker.Stop();我的网站运行框架4.7.2。
发布于 2021-05-21 13:20:13
对于链接到我的证书的各种错误,我也有相同的错误。
根据我的经验,您使用的证书可能已过期。在使用.cert文件而不是.p12文件时,我也遇到了问题。
https://stackoverflow.com/questions/66566102
复制相似问题