パフォーマンスの問題のために、APNバックオフィスをPHPからC#に移動しようとしています。我慢してください、私はC#とモノラルに不慣れです。
OSX10.7.2にMonoDevelop2.8.6.4とAPNS-sharpmerge26をダウンロードしました。
すべてのライブラリとテスト実行可能ファイルを使用してソリューション全体を開き、エラーなしでソリューション全体を構築しました。JdSoft.Apple.Apns.Notifications.TestのProgram.csのフィールド(トークンID、証明書ファイルなど)を、仕様に合うように変更しました。数回試した後、証明書ファイルを正常に取得でき、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を送ります。
良い一日を仲間の開発者に与えてください、そしてあなたの助けと時間を前もって感謝します。どんな提案でも喜んで歓迎します。