System.ServiceModel.Security.SecurityNegotiationException: Не удалось установить безопасный канал для SSL / TLS с полномочиями dev.xyz.com. - PullRequest
1 голос
/ 08 ноября 2019

Мой сервис WCF - .Net 3.5, мое веб-приложение aspx - также .Net 3.5. Мы недавно перешли с Windows Server 2010 на Server 2016.

Мы получаем ошибку ниже:

enter image description here ………………………………………………………

Я искал несколько блогов, и они предлагают добавить код:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

Я не уверен, что эта строка решит проблему.

Также я не знаю, как использовать это утверждение в моем коде:

enter image description here

1 Ответ

1 голос
/ 08 ноября 2019

Эта ошибка в основном указывает на то, что с доверительными отношениями что-то не так. Поскольку служба на стороне сервера защищена сертификатом, мы должны доверять сертификату сервера перед выполнением вызова. Между тем и сервер, и клиентский компьютер будут согласовывать связь по протоколу SSL/TLS, который определяется ОС и версией платформы Dotnet.
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls
Доверительное отношение может быть установлено с помощью следующегооператор.
на стороне клиента (просто добавьте его перед звонком).

ServicePointManager.ServerCertificateValidationCallback += delegate
            {
                return true;
            };
            Uri uri = new Uri("http://10.157.13.69");
            ChannelFactory<IService> factory = new ChannelFactory<IService>(new BasicHttpBinding(), new EndpointAddress(uri));    

В качестве альтернативы, мы могли бы установить сертификат сервера в локальном ЦС.
enter image description here
В этих сегментах кода линии обычно указывается версия TLS/SSL, котораяне рекомендуется, просто позвольте ОС определиться с версией TLS / SSL.

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

Как и в приведенном выше утверждении, используемом для доверия сертификату сервера, мы просто добавляем его на стороне клиента перед выполнением вызова.
Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...