1

Я пытаюсь переместить мой APN backoffice с PHP на C# для проблемы с производительностью. Потерпите меня, я новичок в C# и моно.Ошибка «Возникло исключение загрузки типа». используя apns-sharp с mono

Я просто скачал MonoDevelop 2.8.6.4 и APNS-резкое слияние 26 на моем OSX 10.7.2

Я открыл все решение со всеми библиотеками и тестовых исполняемыми и построен весь раствор без ошибок. Я изменил поля (идентификатор токена, файл сертификата, ...) в Program.cs в JdSoft.Apple.Apns.Notifications.Test, чтобы соответствовать моим спецификациям. После нескольких попыток мне удалось получить файл сертификата OK, и теперь соединение с серверами Apple завершено. Я вижу сообщение о том, что я подключен к выходу приложения.

Проблема возникает. Каждый раз, когда приложение пытается отправить сообщение Apple, я получаю сообщение об ошибке «Возникло исключение загрузки типа». Я попытался немного отладить, и ошибка, похоже, исходит от конструктора NotificationPayload.

Выполнение поэтапного отслеживания, похоже, NotificationAlert правильно создается внутри конструктора NotificationPayload. Ошибка появляется при возврате в конструктор уведомлений, где элемент «Полезная нагрузка» появляется в отладчике как «возникло исключение загрузки типа». вместо объекта.

Оттуда объект 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

'TypeLoadException' предполагает, что у вас нет всех необходимых вам зависимостей. Не можете ли вы получить больше информации из исключения? Вероятно, есть вложенный ... –

+0

Привет, Джон, я бы хотел собрать больше информации об исключении, но я понятия не имею, как это сделать. Любая быстрая идея? Я сказал, что я новичок в mono и C# :-(#shame – C0chett0

+0

Ну, что проглотит исключение? Если это в каком-то открытом исходном коде, вы всегда можете изменить это ... –

ответ

1

(как ОП не может опубликовать ответ сам ...)

В данном конкретном случае решение должно было принести последнюю версию Newtonsoft.Json.Compact.dll.

В общем, вам нужно попытаться получить как можно больше информации из исключения, чтобы узнать, что он пытается загрузить - тогда проверьте, есть ли проблемная библиотека, и что у вас есть версия все иначе ожидает.