Справочник по веб-службам WCF со стандартом .NET 2.0

Я создаю ссылку на веб-службу WCF reference.cs в проекте .NET Standard 2.0, а затем использую ее из проекта .NET 4.7.1, но получаю "Could not establish secure channel for SSL/TLS with authority"

Если я сгенерирую его usingAdd Service Reference помимо Visual Studio 2015. Я получу аналогичный класс reference.cs, и если я скопирую его в свой проект .NET standard 2.0, который будет работать, но я потеряю реализацию Async-вызова веб-службы WCF. Есть ли способ заставить это работать?


person sofsntp    schedule 13.09.2018    source источник
comment
Возможный дубликат Не удалось установить безопасный канал для SSL / TLS с полномочиями '*'   -  person Hintham    schedule 13.09.2018


Ответы (1)


Убедитесь, что вы настроили привязки. Они находятся в app.config в проекте .NET Framework, но должны быть заключены в BasicHttpBinding в .NET Standard / .NET Core.

Таким образом, вы можете указать необходимые параметры безопасности:

    binding.Security.Mode = BasicHttpSecurityMode.Transport;
    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
    binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;

Из пакета Nuget System.ServiceModel.Http:

namespace System.ServiceModel
{
    public class BasicHttpBinding : HttpBindingBase
    {
        public BasicHttpBinding();
        public BasicHttpBinding(BasicHttpSecurityMode securityMode);

        public BasicHttpSecurity Security { get; set; }

        public override IChannelFactory<TChannel> BuildChannelFactory<TChannel>(BindingParameterCollection parameters);
        public override BindingElementCollection CreateBindingElements();
    }
}
person losange    schedule 13.09.2018