Asp.net mvc 4 Azure灾难上的PushSharp ASP.net MVC4。-Can';t连接到APNS反馈服务

Asp.net mvc 4 Azure灾难上的PushSharp ASP.net MVC4。-Can';t连接到APNS反馈服务,asp.net-mvc-4,azure,apple-push-notifications,pushsharp,Asp.net Mvc 4,Azure,Apple Push Notifications,Pushsharp,我有一个ASP.NETMVC4网站在Azure上运行一个简单的web服务,为我们的移动应用程序提供推送通知服务。它在我的机器上的本地IIS实例上运行时可以工作,但一旦部署到Azure,它会工作一段时间,然后停止。在PushSharp无法连接到苹果的反馈服务后,它似乎可能会停止。最初我得到第一个堆栈跟踪,然后每隔十分钟我得到第二个堆栈跟踪。证书可以很好地连接到APN本身,事实上,我已经收到了通过Azure web服务发送的测试推送通知。我正在从一个文件加载证书,如PushSharp示例所示。我需要

我有一个ASP.NETMVC4网站在Azure上运行一个简单的web服务,为我们的移动应用程序提供推送通知服务。它在我的机器上的本地IIS实例上运行时可以工作,但一旦部署到Azure,它会工作一段时间,然后停止。在PushSharp无法连接到苹果的反馈服务后,它似乎可能会停止。最初我得到第一个堆栈跟踪,然后每隔十分钟我得到第二个堆栈跟踪。证书可以很好地连接到APN本身,事实上,我已经收到了通过Azure web服务发送的测试推送通知。我正在从一个文件加载证书,如PushSharp示例所示。我需要另一张反馈服务证书吗? 还有其他人有类似的设置吗

第一个堆栈跟踪

    System.ComponentModel.Win32Exception (0x80004005): 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 PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings settings, CancellationToken cancelToken)
   at PushSharp.Apple.ApplePushService.<ApplePushService>c__AnonStorey3.<>m__8(Object state)    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 PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings settings, CancellationToken cancelToken)
   at PushSharp.Apple.ApplePushService.<ApplePushService>c__AnonStorey3.<>m__8(Object state)
2013-06-11 03:51:18.6942 FATAL Push service Exception on VisionsLiveMobileBulletinBoard Development channel
System.Net.Sockets.SocketException (0x80004005): An attempt was made to access a socket in a way forbidden by its access permissions 17.172.233.66:2196
   at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port)
   at PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings settings, CancellationToken cancelToken)
   at PushSharp.Apple.ApplePushService.<ApplePushService>c__AnonStorey3.<>m__8(Object state)    at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port)
   at PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings settings, CancellationToken cancelToken)
   at PushSharp.Apple.ApplePushService.<ApplePushService>c__AnonStorey3.<>m__8(Object state)
2
System.ComponentModel.Win32Exception(0x80004005):无法识别提供给包的凭据
位于System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule、字符串包、CredentialUse intent、SecureCredential scc)
在System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage、SecureCredential和SecureCredential)
位于System.Net.Security.SecureChannel.AcquireClientCredentials(字节[]和指纹)
位于System.Net.Security.SecureChannel.GenerateToken(字节[]输入、Int32偏移量、Int32计数、字节[]和输出)
位于System.Net.Security.SecureChannel.NextMessage(字节[]传入,Int32偏移量,Int32计数)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReadFrame(字节[]缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReadFrame(字节[]缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReadFrame(字节[]缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ForceAuthentication(布尔值receiveFirst,字节[]缓冲区,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult-lazyResult)上
位于System.Net.Security.SslStream.AuthenticateTasClient(字符串targetHost、X509CertificateCollection客户端证书、启用SslProtocols的SslProtocols、布尔检查证书调用)
在PushSharp.Apple.FeedbackService.Run(ApplePushChannelSettings设置,CancellationToken cancelToken)
在System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule,String package,CredentialUse intent,SecureCcredential scc)的PushSharp.Apple.ApplePushService.c__Anostorey3.m_u8(对象状态)中
在System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage、SecureCredential和SecureCredential)
位于System.Net.Security.SecureChannel.AcquireClientCredentials(字节[]和指纹)
位于System.Net.Security.SecureChannel.GenerateToken(字节[]输入、Int32偏移量、Int32计数、字节[]和输出)
位于System.Net.Security.SecureChannel.NextMessage(字节[]传入,Int32偏移量,Int32计数)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReadFrame(字节[]缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReadFrame(字节[]缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲区,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.StartSendBlob(字节[]传入,Int32计数,AsyncProtocolRequest asyncRequest)
位于System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)
在System.Net.Security.SslState.StartReadFrame(B