1

ここで誰かが私を助けてくれることを願っています。

数日間、Windows Server 2008 から Apple プッシュ通知を送信しようとしていますが、何も送受信されません。実際、すべてを単純な mvc アプリケーションに移動したので、デバッグが容易になり、プッシュ通知を強制的に送信しようとするとハングすることに気付きました (push.StopAllServices(true); で)。まだ) Windows Server 2012R2 から通知を送信する同じアプローチを使用しているため、証明書とコードは問題ないと思います。

  • 私はWindowsサービスを使用しており、シャープを押して通知を送信しています。ターゲット フレームワーク: 4
  • テスト プロジェクトは MVC 2.0 ターゲット フレームワーク 4 です。
  • サーバーにasp.net 4.5をインストールしました
  • 個人 (秘密鍵が利用可能で、IUSR と IIS_USRS のアクセス許可が付与されています) および信頼されたルート証明機関に mmc 経由で証明書をインストールしました。
  • ポート 2195 が開いています

コードは次のとおりです。

private void Initizalize()
        {
            push = new PushBroker();

            //appleCert is path to my .p12 certificate on disk.     
            var cert = new ApplePushChannelSettings(false, appleCert, "***");

            //I've read somewhere that it was helpful to force send notifications. Well, in my case it's not. 
            var settings = new PushServiceSettings();

            settings.AutoScaleChannels = false;
            settings.Channels = 3;
            settings.MaxAutoScaleChannels = 3;


            //Wire up the events for all the services that the broker registers
            push.OnNotificationSent += NotificationSent;
            push.OnChannelException += ChannelException;
            push.OnServiceException += ServiceException;
            push.OnNotificationFailed += NotificationFailed;
            push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired;
            push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged;
            push.OnChannelCreated += ChannelCreated;
            push.OnChannelDestroyed += ChannelDestroyed;

            push.RegisterAppleService(cert, settings);
        }

public void SendPush()
        {
            Initizalize();
            var token = hard coded token that exists;
            var output = "msg";
            push.QueueNotification(new AppleNotification()
                                       .ForDeviceToken(token)
                                       .WithAlert(output)
                                       .WithBadge(1)
                                       .WithSound("default"));

            push.StopAllServices(true);
        }

イベント「OnNotificationSent」を発生させますが、他には何もありません。

重要かもしれないもう1つのこと。プッシュ通知の送受信は、windows server 2012 から動作していましたが、windows azure 仮想マシンであるため、証明書のインストールは異なりました。

何か案は?出来ない情報でも助かります!

編集:1つの問題が解決しました:

StopAllServices を呼び出すには、明らかに NewtonSoft.Json への参照が必要です。現在はハングしていませんが、デバイスは何も受信していません。

4

1 に答える 1