我正在尝试将我的APN后台从PHP转移到C#以解决性能问题。忍受我,我是C#和单声道的新手。
我刚刚在我的OSX 10.7.2上下载了MonoDevelop 2.8.6.4和APNS-sharp merge 26
我用所有库和测试可执行文件打开了整个解决方案,并构建了整个解决方案而没有错误。我修改了JdSoft.Apple.Apns.Notifications.Test中Program.cs中的字段(标记ID,证书文件,...)以符合我的规范。 经过几次尝试后,我设法将我的证书文件设置为OK,并且与Apple服务器的连接现已启动。我看到消息说我在应用程序的输出中已连接。
现在出现问题。每次应用程序尝试向Apple发送消息时,都会收到错误“出现类型加载异常”。我尝试了一点调试,错误似乎来自NotificationPayload构造函数。
一步一步地进行跟进,看起来NotificationAlert在NotificationPayload构造函数中被正确实例化。返回到通知构造函数时出现错误,其中Payload成员在调试器中显示为“发生类型加载异常”。而不是一个对象。
Notification对象从那里以相同的行为结束。
根据我在互联网上的研究,这可能来自Newtonsoft.Json.Compact.dll的版本,但我不知道如何处理这条信息。
有关信息,我在CentOS服务器上运行编译测试时会看到相同的错误。
有关应用程序消息的更多信息(在测试程序中将ex.Message更改为ex.ToString()以获取完整错误):
Notification Queued!
Sleeping 15000 milliseconds before next Notification...
Connecting...
Connected...
Error: System.TypeLoadException: A type load exception has occurred.
at JdSoft.Apple.Apns.Notifications.Notification.ToBytes () [0x0006c] in /Users/laurent/Downloads/Redth-APNS-Sharp-595275f 2/JdSoft.Apple.Apns.Notifications/Notification.cs:90
at JdSoft.Apple.Apns.Notifications.NotificationChannel.Send (JdSoft.Apple.Apns.Notifications.Notification notification) [0x00000] in /Users/laurent/Downloads/Redth-APNS-Sharp-595275f 2/JdSoft.Apple.Apns.Notifications/NotificationChannel.cs:371
at JdSoft.Apple.Apns.Notifications.NotificationConnection.workerMethod () [0x00035] in /Users/laurent/Downloads/Redth-APNS-Sharp-595275f 2/JdSoft.Apple.Apns.Notifications/NotificationConnection.cs:381
我没有放置代码,因为我没有更改https://github.com/Redth/APNS-Sharp所见的内容。
我向周围的所有单身大师发送SOS。
与开发人员共度愉快的一天,并提前感谢您的帮助和时间。欢迎任何建议。
答案 0 :(得分:1)
(因为OP无法自己发布答案......)
在这种特殊情况下,解决方案是获取最新版本的Newtonsoft.Json.Compact.dll
。
通常,您需要尝试从异常中获取尽可能多的信息,以找出它尝试加载的内容 - 然后检查存在问题的库,以及您是否已获得该版本其他一切都在期待。