首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PushSharpHttpTwo的HTTP-2推送通知

使用PushSharpHttpTwo的HTTP-2推送通知
EN

Stack Overflow用户
提问于 2021-03-10 13:50:13
回答 1查看 507关注 0票数 0

我尝试使用PushSharpHttpTwo向苹果发送HTTP-2推送通知.这是我使用的代码:

代码语言:javascript
复制
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通知工作得很好:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2021-05-21 13:20:13

对于链接到我的证书的各种错误,我也有相同的错误。

根据我的经验,您使用的证书可能已过期。在使用.cert文件而不是.p12文件时,我也遇到了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66566102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档