C# HttpWebRequest.GetResponse()通过https向ELB后面的EC2发送SendFailure
我们的.NET代码使用JSON发布到HTTPS REST API。它可以在Vista以上的机器上运行(我想它们都有.NET4.5),但是,我们需要支持down,才能用.NET4.0赢得XP,在这台机器上,我们的代码在下面显示的最后一行失败 如果我们将URI从HTTPS更改为HTTP,它可以正常工作。您在下面看到的许多行(例如CertificateValidationCallBack)都是为了修复此问题而添加的 大旗:我们注意到,在这台XP机器上,IE8通过HTTPS提供了“InternetExplorer无法显示网页”,尽管HTTP很好。我们添加了C# HttpWebRequest.GetResponse()通过https向ELB后面的EC2发送SendFailure,c#,.net,amazon-web-services,amazon-ec2,C#,.net,Amazon Web Services,Amazon Ec2,我们的.NET代码使用JSON发布到HTTPS REST API。它可以在Vista以上的机器上运行(我想它们都有.NET4.5),但是,我们需要支持down,才能用.NET4.0赢得XP,在这台机器上,我们的代码在下面显示的最后一行失败 如果我们将URI从HTTPS更改为HTTP,它可以正常工作。您在下面看到的许多行(例如CertificateValidationCallBack)都是为了修复此问题而添加的 大旗:我们注意到,在这台XP机器上,IE8通过HTTPS提供了“InternetExp
CertificateValidationCallBack
处理程序,希望它能够解决这个问题。我不确定是不是
有关服务器配置的一些信息。它是ELB后面的EC2实例。ELB持有SSL证书,并将从端口443接收的数据发送到端口80。EC2实例上的Apache只处理端口80
补充:sslchecker.com显示了良好的证书
private static bool CertificateValidationCallBack(
object sender,
System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
}
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);
webRequest.PreAuthenticate = true;
using (var client = new WebClient())
{
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
try
{
string responseString ;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
_webEx = null;
webRequest.ContentType = "application/json";
webRequest.Method = "POST";
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(credsString);
// webRequest.ContentLength = bytes.Length;
webRequest.KeepAlive = false;
webRequest.Timeout = -1;
System.IO.Stream os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length); //Push it out there
os.Close();
System.Net.WebResponse resp = webRequest.GetResponse();
. . . . .
}
}
这个问题解决了吗?经历了类似的事情后,我最终无法在XP上的任何VS版本中使用它。如果我把它打包并在XP上运行,它会工作吗?大概不知道我们现在正在开发Vista并为此项目赢得8分。对不起,我帮不了你了,没事的!谢谢你的回复