由于性能问题,我正在尝试将我的APN后台从PHP迁移到C#。请耐心听我说,我是C#和mono的新手。
我刚刚在我的操作系统10.7.2上下载了MonoDevelop 2.8.6.4和APNS-sharp merge 26
我打开了包含所有库和测试可执行文件的整个解决方案,并且构建了整个解决方案,没有出现错误。我修改了字段(令牌id,证书文件,...)在JdSoft.Apple.Apns.Notifications.Test的Program.cs中,以满足我的规格。经过几次尝试,我设法获得了我的证书文件OK,现在连接到Apple服务器。我看到消息说我已在应用程序的输出中连接。
问题来了。每次应用程序尝试向Apple发送一条消息时,我都会收到错误消息"A Type load exception has“。我尝试了一下调试,错误似乎来自NotificationPayload构造函数。
通过一步一步的跟踪,似乎在NotificationPayload构造函数中正确实例化了NotificationAlert。返回到Notification构造函数时出现该错误,在该构造函数中,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看到的代码做任何修改。
我向周围所有的单声道专家发送求救信号。
祝开发人员有个愉快的一天,提前感谢您的帮助和时间。任何建议都是受欢迎的。
发布于 2012-02-15 01:24:58
(因为操作员不能自己发布答案...)
在这种情况下,解决方案是获取最新版本的Newtonsoft.Json.Compact.dll。
通常,您需要尝试从异常中获取尽可能多的信息,以找出它试图加载的内容-然后检查有问题的库是否存在,以及您是否获得了其他所有人所期望的版本。
https://stackoverflow.com/questions/9277538
复制相似问题