Клиент и сервер не могут взаимодействовать, поскольку не обладают общим алгоритмом — ASP.NET C# VB Visual Basic IIS TLS C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Клиент и сервер не могут взаимодействовать, поскольку не обладают общим алгоритмом — ASP.NET C# VB Visual Basic IIS TLS

Сообщение Anonymous »

У меня возникла проблема со шлюзом C# PayTrace. Приведенный ниже код работал нормально до вчерашнего дня, когда я считаю, что они отключили SSL3 из-за Poodle Exploit. При запуске приведенного ниже кода мы получили следующее сообщение. Удаленный сервер принудительно закрыл соединение. Проведя некоторое исследование проблемы, мы определили, что, поскольку наш сервер IIS 7.5 по-прежнему настроен на использование SSL3, C# по умолчанию использует SSL3, и PayTrace принудительно закроет соединение. Затем мы удалили SSL3 с сервера. Это приводит к следующей ошибке:

Клиент и сервер не могут взаимодействовать, поскольку не обладают общим алгоритмом.

Я предполагаю, что теперь, когда SSL 3 удален, нам необходимо установить на сервер дополнительный алгоритм SSL. Наш ИТ-персонал утверждает, что TLS 1.1 и TLS 1.2 работают и что ASP.NET теперь должен использовать их по умолчанию. Но я чувствую, что нам нужно еще что-то установить на сервер. Я не знаком с алгоритмами SSL, поэтому понятия не имею, с чего начать.

Код: Выделить всё

var postUrl = new StringBuilder();

//Initialize url with configuration and parameter values...
postUrl.AppendFormat("UN~{0}|", this.MerchantLoginID);
postUrl.AppendFormat("PSWD~{0}|", this.MerchantTransactionKey);
postUrl.Append("TERMS~Y|METHOD~ProcessTranx|TRANXTYPE~Sale|");
postUrl.AppendFormat("CC~{0}|", cardNumber);
postUrl.AppendFormat("EXPMNTH~{0}|", expirationMonth.PadLeft(2, '0'));
postUrl.AppendFormat("EXPYR~{0}|", expirationYear);
postUrl.AppendFormat("AMOUNT~{0}|", transactionAmount);
postUrl.AppendFormat("BADDRESS~{0}|", this.AddressLine1);
postUrl.AppendFormat("BADDRESS2~{0}|", this.AddressLine2);
postUrl.AppendFormat("BCITY~{0}|", this.City);
postUrl.AppendFormat("BSTATE~{0}|", this.State);
postUrl.AppendFormat("BZIP~{0}|", this.Zip);
postUrl.AppendFormat("SADDRESS~{0}|", this.AddressLine1);
postUrl.AppendFormat("SADDRESS2~{0}|", this.AddressLine2);
postUrl.AppendFormat("SCITY~{0}|", this.City);
postUrl.AppendFormat("SSTATE~{0}|", this.State);
postUrl.AppendFormat("SZIP~{0}|", this.Zip);
if (!String.IsNullOrEmpty(this.Country))
{
postUrl.AppendFormat("BCOUNTRY~{0}|", this.Country);
}
if (!String.IsNullOrEmpty(this.Description))
{
postUrl.AppendFormat("DESCRIPTION~{0}|", this.Description);
}
if (!String.IsNullOrEmpty(this.InvoiceNumber))
{
postUrl.AppendFormat("INVOICE~{0}|", this.InvoiceNumber);
}
if (this.IsTestMode)
{
postUrl.AppendFormat("TEST~Y|");
}

//postUrl.Append();

WebClient wClient = new WebClient();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
String sRequest = "PARMLIST=" + Url.Encode(postUrl.ToString());
wClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
string sResponse = "";
sResponse = wClient.UploadString(PayTraceUrl, sRequest);
Кроме того, к вашему сведению, эта проблема также возникает, когда мы подключаемся к шлюзу First Data E4, так что это не просто проблема PayTrace. Я предполагаю, что по мере того, как все больше шлюзов отключают доступ к SSL3, мы будем продолжать сталкиваться с проблемами с другими шлюзами, пока это не будет решено на сервере. Кроме того, я нашел в Интернете несколько предложений: некоторые предлагали разместить следующий код непосредственно перед отправкой исходящего запроса:

Код: Выделить всё

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
К сожалению, это тоже не сработало, та же ошибка. Вот почему я думаю, что на сервере IIS7.5 необходимо установить что-то дополнительное. Я просто не уверен, что именно.

Подробнее здесь: https://stackoverflow.com/questions/267 ... a-common-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»