2

Apple プッシュ通知プロバイダー (apns-sharp) を使用すると、次の例外が発生します。

プッシュ通知は私の開発マシンでは機能しますが、Rackspace Cloud ホスティング内では機能しません。私は自分の開発環境で実行している正確な Rackspace Cloud のカスタム ミディアム トラスト構成を持っています。マシンなので、ここでは中程度の信頼が問題になることはありません。また、証明書ファイルは私の開発で機能するため、問題になることはありません。機械。

何か案は?

更新 #1:これは、Rackspace Cloud サーバー上にない可能性のある Entrust ルート サーバーと関係がありますか? apns-sharp コードにチェックインしたところ、証明書の検証が無視されているように見えますが、100% 確実ではありません。

The credentials supplied to the package were not recognized    at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule, String package, CredentialUse intent, SecureCredential scc)
  at System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential& secureCredential)
  at System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint)
  at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output)
  at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count)
  at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
  at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
  at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
  at JdSoft.Apple.Apns.Notifications.NotificationConnection.OpenSslStream()
  at JdSoft.Apple.Apns.Notifications.NotificationConnection.Reconnect()
  at JdSoft.Apple.Apns.Notifications.NotificationConnection.workerMethod()
4

4 に答える 4

2

これは役に立ちますか?

于 2010-01-19T16:13:45.473 に答える
1

この例外が引き続き発生する場合:

同じ例外があり、「apns-sharp」のすべての手順とフォーラムを読んでも役に立ちませんでした。MAC から証明書をエクスポートすることについてはすべて問題ありませんでしたが、私の問題は、デフォルトの構成でローカル マシンに証明書をインストールしていたため、privateKeyがインポートされなかったため、その証明書を使用できないことでした。次に、新しい証明書を開いてインストールするときに、必ず秘密鍵をインストールする必要があります。コードでは、次のようなものが必要です。

new X509Certificate2(rawCertificateInBytes, Password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);

それは私の問題を解決しました。

于 2012-01-31T02:50:47.193 に答える
0

このページをフォローしましたか: http://code.google.com/p/apns-sharp/wiki/HowToCreatePKCS12Certificate

また、apns-sharp の最新バージョンをチェックすることに興味があるかもしれません。多くの問題が解決されています。

于 2010-01-22T11:41:03.657 に答える
0

私の状況では、この問題は解決できなかった Rackspace クラウド サイトの信頼度が中程度のセキュリティに関連していました。この問題を克服するために、PHP コードを使用して APNS にアクセスするように設計を変更しました。

于 2011-04-21T05:36:07.453 に答える