.NET Core Soap PlatformNotSupportedException, не могу создать пользовательскую привязку - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь получить данные из службы SOAP, но не могу заставить их работать.Проблема, я думаю, в ядре .net не были реализованы все методы привязки.У меня также есть рабочий пример, но он написан с помощью .net Framework.

Итак, вопрос в том, вот рабочая конфигурация "Web.config"

</customBinding>
    <binding name="example">
  <security authenticationMode="UserNameOverTransport" enableUnsecuredResponse="true" includeTimestamp="false" />
  <textMessageEncoding messageVersion="Soap12" />
  <httpsTransport maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" />
</binding>

Я пытался выполнить эту настройку в ядре .net, но никак не мог.Всегда получайте сообщения об ошибке на платформе, и даже если я работаю, сервису требуется базовая аутентификация, сбой и т. Д. И т. Д. Итак, вот моя последняя попытка, которая дает мне сообщение «TransportSecurityBindingElement.BuildChannelFactoryCore не поддерживается».ошибка:

CustomBinding binding = new CustomBinding()
            {
                Name = "example",
                ReceiveTimeout = new TimeSpan(0, 0, 100, 0, 0),
                SendTimeout = new TimeSpan(0, 0, 100, 0, 0),
            };
            var element1 = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
            var element2 = new HttpsTransportBindingElement()
            {
                ManualAddressing = false,
                MaxReceivedMessageSize = 2147483647,
                AllowCookies = false,
                AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous,
                BypassProxyOnLocal = false,
                MaxBufferSize = 2147483647,
                ProxyAuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous,
                TransferMode = TransferMode.Buffered,
                UseDefaultWebProxy = true
            };
            var element3 = new TextMessageEncodingBindingElement(MessageVersion.Soap11, System.Text.Encoding.UTF8);
            binding.Elements.Add(element1);
            binding.Elements.Add(element3);
            binding.Elements.Add(element2);

А также, как вы видите, мне нужна привязка безопасности, для которой требуется

<security authenticationMode="UserNameOverTransport" enableUnsecuredResponse="true" includeTimestamp="false" />

Но даже в коде я не могу создать эту привязку самостоятельно.Даже если я это сделаю, код не будет работать из-за проблемы, как я упоминал выше.Спасибо за ваше время

...