Я пытаюсь использовать API WCF с .Net Core 2.1.2, но в настоящее время у меня возникают некоторые проблемы с сертифицированными валидациями.
Основная проблема в том, что когда я отлаживаю, я могу делать запросы к серверу. Когда я развертываю исполняемый файл моего проекта и запускаю на моей машине, я могу также делать запросы. Но когда я копирую тот же исполняемый файл в среду принятия, код выдает исключение «не удалось установить доверительные отношения для безопасного канала SSL / TLS» *
Моя машина находится за пределами среды приема (я использую VPN). Приемная машина находится внутри окружающей среды.
Есть идеи о том, что происходит?
Спасибо!
private WSClient InstantiateProxy()
{
WSClient accessWSClient = new WSClient(EndpointConfiguration.MIAccessPort, Configuration["AppConfiguration:Endpoint"]);
accessWSClient.ClientCredentials.Windows.ClientCredential =
new NetworkCredential(Configuration["AppConfiguration:Username"], Configuration["AppConfiguration:Password"]);
ConfigureBinding(accessWSClient);
accessWSClient.ClientCredentials.ServiceCertificate.SslCertificateAuthentication = new X509ServiceCertificateAuthentication
{
CertificateValidationMode = X509CertificateValidationMode.None,
RevocationMode = X509RevocationMode.NoCheck,
};
return accessWSClient;
}
private static void ConfigureBinding(WSClient accessWSClient)
{
System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding
{
MaxBufferSize = int.MaxValue,
ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max,
MaxReceivedMessageSize = int.MaxValue,
AllowCookies = true
};
binding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Windows;
accessWSClient.Endpoint.Binding = binding;
}