我正在尝试从azure发送推送通知,当我从我的本地服务器发送其工作正常,但当我上传我的网络应用程序以使其无法正常工作(502 bad gateway error
)。所以我的代码在这里:
hostname = "gateway.push.apple.com";
PORT = 2195;
TcpClient client = new TcpClient();
X509Certificate2 clientCertificate = new X509Certificate2(System.IO.File.ReadAllBytes(System.Web.HttpContext.Current.Server.MapPath(path)), password);
X509Certificate2Collection certificatesCollection = new X509Certificate2Collection(clientCertificate);
client = new TcpClient(hostname, PORT);
SslStream sslStream = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
sslStream.AuthenticateAsClient(hostname, certificatesCollection, SslProtocols.Tls, false);
MemoryStream memoryStream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(memoryStream);
writer.Write((byte)0);
writer.Write((byte)0);
writer.Write((byte)32);
writer.Write(HexString2Bytes(ReciverDeviceToken.ToUpper()));
JObject payloadData = new JObject();
JObject aps = new JObject();
aps.Add("alert", Title);
aps.Add("badge", "1");
aps.Add("sound", "sound.caf");
payloadData.Add("aps", aps);
foreach (var m in Messages)
{
payloadData.Add(m.Key, m.Value);
}
string payloadDataToString = payloadData.ToString();
writer.Write((byte)0);
writer.Write((byte)payloadDataToString.Length);
byte[] b1 = System.Text.Encoding.UTF8.GetBytes(payloadDataToString);
writer.Write(b1);
writer.Flush();
byte[] array = memoryStream.ToArray();
sslStream.Write(array);
sslStream.Flush();
client.Close();
我用Google搜索,但没有结果。有什么想法吗?谢谢
答案 0 :(得分:0)
试试这个
X509Certificate2 cert = new X509Certificate2(pfxFile, "password", X509KeyStorageFlags.MachineKeySet);
了解更多详情,请参阅此链接
Windows Azure Management Libraries Certification Error on Web Jobs