Конфигурация конечной точки WSDL в .NET Core - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь работать с WSDL, используя ядро ​​.NET. В настоящее время я могу импортировать WSDL и сгенерированы соответствующие файлы:

.NET core Connected Services generated files

Структура сделана правильно, и кажется, что все должно работать как положено. Теперь в ASP.NET у меня будет XML с такой информацией:

 <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="SI_SearchItem_OutBinding" />
        <binding name="SI_SearchItem_OutBinding1">
            <security mode="Transport">
                <transport clientCredentialType="Basic" proxyCredentialType="Basic" realm="XISOAPApps" />
                <message clientCredentialType="UserName" algorithmSuite="Default" />
            </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="HTTP_ENDPOINT_LINK"
        binding="basicHttpBinding" bindingConfiguration="SI_SearchItem_OutBinding"
        contract="SI_Out.SI_SearchItem_Out" name="HTTP_Port" />
      <endpoint address="HTTPS_ENDPOINT_LINK"
        binding="basicHttpBinding" bindingConfiguration="SI_SearchItem_OutBinding1"
        contract="SI_Out.SI_SearchItem_Out" name="HTTPS_Port" />
    </client>
  </system.serviceModel>

Поскольку у нас больше нет web.config в ядре, я пытаюсь программно добавить эти конфигурации.

Глядя на Reference.cs, я заметил две вещи:

  1. ConfigureEndpoint не реализован в сгенерированных файлах, из-за чего я подумал, что мне нужно выполнить мои настройки там.
  2. ConfigureEndpoint определяется следующим образом: static partial void ConfigureEndpoint(System.ServiceModel.Description.ServiceEndpoint serviceEndpoint, System.ServiceModel.Description.ClientCredentials clientCredentials);

Но эта функция вызывается

public SI_SearchItem_OutClient(EndpointConfiguration endpointConfiguration) : 
            base(SI_SearchItem_OutClient.GetBindingForEndpoint(endpointConfiguration), SI_SearchItem_OutClient.GetEndpointAddress(endpointConfiguration))
    {
        this.Endpoint.Name = endpointConfiguration.ToString();
        ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
    }

Который не принимает учетные данные клиента в параметрах конструктора, поэтому я не могу фактически программно реплицировать вышеуказанный код xml внутри функции configureEndpoint.

Надеюсь, я хорошо объяснил, что практически единственное, что я пытаюсь сделать, - это иметь возможность аутентифицировать мои вызовы SOAP с помощью учетных данных, программно реплицируя вышеуказанный код XML внутри частичной функции ConfigureEndpoint.

Спасибо, что нашли время ответить, Зено

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