C# HttpWebRequest:请求被中止:无法创建SSL/TLS安全通道
我正在制作一个asp.net web表单应用程序,它提供使用paypal支付的功能。应用程序应该使用ssl。当我运行我的应用程序时,一切都很顺利,直到我选择我的按钮paypal。当我按下此按钮时,出现以下错误: 请求被中止:无法创建SSL/TLS安全通道 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.Net.WebException:请求已中止: 无法创建SSL/TLS安全通道 源错误: 第203行:第204行://检索从 NVP API调用贝宝。第205行:HttpWebResponse objResponse= (HttpWebResponse)objRequest.GetResponse();第206行:字符串 结果;第207行:使用(StreamReader sr=new StreamReader(objResponse.GetResponseStream()) 源文件:C:\Users\willem\documents\visual studio 2015\Projects\WingtipToys\WingtipToys\Logic\PayPalFunctions.csC# HttpWebRequest:请求被中止:无法创建SSL/TLS安全通道,c#,asp.net,ssl,paypal,httpwebrequest,C#,Asp.net,Ssl,Paypal,Httpwebrequest,我正在制作一个asp.net web表单应用程序,它提供使用paypal支付的功能。应用程序应该使用ssl。当我运行我的应用程序时,一切都很顺利,直到我选择我的按钮paypal。当我按下此按钮时,出现以下错误: 请求被中止:无法创建SSL/TLS安全通道 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.Net.WebException:请求已中止: 无法创建SSL/TLS安全通道 源错误: 第203
线路:205 下面是我的方法,错误在其中发生
public string HttpCall(string NvpRequest)
{
string url = pEndPointURL;
string strPost = NvpRequest + "&" + buildCredentialsNVPString();
strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode(BNCode);
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
objRequest.Timeout = Timeout;
objRequest.Method = "POST";
//objRequest.ContentLength = strPost.Length;
try
{
using (StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream()))
{
myWriter.Write(strPost);
}
}
catch (Exception)
{
// No logging for this tutorial.
}
//Retrieve the Response returned from the NVP API call to PayPal.
HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
string result;
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd();
}
return result;
}
您的代码片段没有指定要使用的安全协议,我可以告诉您- 例如:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
我在查看了针对PayPalAPI的不同身份验证方法后发现了这一点
这里有一个相关的话题值得称赞
注意:此答案是在原始OP问题的注释字符串之后添加的。您是否安装了调用端点所需的SSL证书?我相信是在windows询问我时安装的:是否信任IIS Express SSL证书并继续?然后:是否要安装此证书?我的回答都是肯定的。我指的是您试图为其创建web请求的端点。使用浏览器浏览该服务端点时,它是否向您提供了您已经在工作站上本地安装/信任的证书?当我将url复制到浏览器时,会收到以下消息:ACK=Failure&L_ERRORCODE0=81002&L_SHORTMESSAGE0=Unspecified%20Method&L_longmesse0=Method%20指定的%20是%20不支持的&L_SEVERITYCODE0=Error这是你问题的答案吗?我以前从未使用过ssl,因此如果我不清楚,我很抱歉您的代码片段没有指定要使用的安全协议—例如:ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;这里有一个相关的话题,我想你也需要看看