우리는 .Net Framework 4.0 및 IIS 7을 사용하는 웹 사이트를 가지고 있습니다. Paypal의 최신 업데이트 이후 IPN 처리기가 더 이상 작동하지 않습니다. 우리는 닷넷 프레임 워크 4.0을 사용하는 것처럼 우리는 다음 줄에 추가 그래서 The request was aborted: Could not create SSL/TLS secure channel sandbox account : 기본 연결이 닫혔습니다 : :페이팔 응답 받기 TLS 1.2 .Net Framework 4.0
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // SecurityProtocolType.Tls12
이제 우리는 다른 오류를 보내기에서 예기치 않은 오류가 발생했습니다를 우리는이 오류를했다 .
응답을 처리하는 클래스가이 예 기반지금 행하기 전에 첨가 후 https://mvcsamples.svn.codeplex.com/svn/trunk/Kona.Web/Controllers/PayPalController.cs
은 다음과 같다 :
private string GetPayPalResponse(Dictionary<string, string> formVals, bool useSandbox)
{
string paypalUrl = useSandbox ? "https://www.sandbox.paypal.com/cgi-bin/webscr"
: "https://www.paypal.com/cgi-bin/webscr";
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // SecurityProtocolType.Tls12
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(paypalUrl);
// Set values for the request back
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] param = Request.BinaryRead(Request.ContentLength);
string strRequest = Encoding.ASCII.GetString(param);
StringBuilder sb = new StringBuilder();
sb.Append(strRequest);
foreach (string key in formVals.Keys)
{
sb.AppendFormat("&{0}={1}", key, formVals[key]);
}
strRequest += sb.ToString();
req.ContentLength = strRequest.Length;
//for proxy
//WebProxy proxy = new WebProxy(new Uri("http://urlort#");
//req.Proxy = proxy;
//Send the request to PayPal and get the response
string response = "";
using (StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII))
{
streamOut.Write(strRequest);
streamOut.Close(); linea = 10;
using (StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream()))
{
response = streamIn.ReadToEnd();
}
}
return response;
}
예외가이 라인에서 발생된다
using (StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII))
우리가 .NET Framework 4.0에서 Paypal을 사용할 수 있는지 확실하지 않습니다. 우리가 추가 한 라인을 사용하는 것이 가능하다고합니다. 그러나 작동하지 않습니다. 코드 또는 IS 7에서 수행해야 할 변경이 더있을 수 있습니다. 그러나 예제를 찾을 수 없습니다.
도움 주셔서 감사합니다.
편집 : 나는 거의 프로젝트는 .NET 프레임 워크 4.5가 아니라 Visual Studio 2010에서 Visual Studio 2010를 사용하여 개발되는 것을 언급하는 것을 잊었다
.
편집 2 : https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/ 을하지만 그 후 나는이의 새로운 업데이트를 발견 : 나는이 문제를 조사하고 나는 우리 서버 윈도우 서버 2008 TLS 1.2 (표에서 볼)을 지원하지 않은 것을 발견
모든 버전의 SQL Server에 대해 2016 년 https://blogs.msdn.microsoft.com/sqlreleaseservices/tls-1-2-support-for-sql-server-2008-2008-r2-2012-and-2014/ http://blogs.sqlsentry.com/aaronbertrand/tls-1-2-support-read-first/하지만 결국에 몇 가지 이유에 대한 내 상사가 서버 새 업데이트를 사용하거나 등록 방법을 사용하여 갱신하지 않기로 결정 .
그래서 어떤 솔루션을 증명할 수는 없습니다. 문제를 일으켜서 미안 해요.
TLS 1.2 및 TLS 1.1은 (는) 다음 웹 사이트에서 제공됩니다. Framework 4.0에서 지원되지 않음 – FabioThorin
이 문제점에 대한 해결책을 찾았습니까? 우리는 .NET 4.6.1을 사용하므로 Tls | Tls11 | ServicePointManager.SecurityProtocol에 대한 Tls12. Tls12가 설정된 후 "기본 연결이 닫혔습니다."라는 두 번째 예외로 고민하고 있습니다. 일은 낭비없이 낭비됩니다. 내가 뭘하려고해도이 예외가 생깁니다. 외관상으로는 다른 어떤 것이 설정되거나 구성되어야하지만 무엇이 필요합니까? – Alex