создал прокси с помощью svcutil в. net core 2.2 отправить запрос, но не может получить результат - PullRequest
0 голосов
/ 07 мая 2020

Я добавляю ссылку на службу в моем проекте. net core 2.2, используя svcutil 2.0.2 отсюда: http://sms.magfa.com/services/urn: SOAPSmsQueue? Wsdl

созданный прокси-сервер службы отправьте запрос на сервер, а сервер отправит ответ нам, но прокси не может получить результат !! мы используем эту службу в нашем веб-приложении asp. net, но в. net core 2.2 с использованием svcutil 2.0.2 мы не можем получить результат. в чем проблема ? спасибо

мой код:

BasicHttpBinding basicHttpBinding = null;
        EndpointAddress endpointAddress = null;
        ChannelFactory<ServiceReference1.SoapSmsQueuableImplChannel> factory = null;
        ServiceReference1.SoapSmsQueuableImplChannel serviceProxy = null;

        try
        {
            basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
            basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
            endpointAddress = new EndpointAddress(new Uri("https://sms.magfa.com/services/urn:SOAPSmsQueue?wsdl"));
            factory = new ChannelFactory<ServiceReference1.SoapSmsQueuableImplChannel>(basicHttpBinding, endpointAddress);

            factory.Credentials.UserName.UserName = "**";
            factory.Credentials.UserName.Password = "****";
            serviceProxy = factory.CreateChannel();

            //((ICommunicationObject)serviceProxy).Open();
            //var opContext = new OperationContext((IClientChannel)serviceProxy);
            //var prevOpContext = OperationContext.Current; // Optional if there's no way this might already be set
            //OperationContext.Current = opContext;

            using (var scope = new OperationContextScope((IContextChannel)serviceProxy))
            {
                var result = await serviceProxy.getCreditAsync("***").ConfigureAwait(false);

            }

            factory.Close();
            ((ICommunicationObject)serviceProxy).Close();
        }
        catch (MessageSecurityException ex)
        {
            throw;
        }
        catch (Exception ex)
        {
            throw;
        }
        finally
        {
            // *** ENSURE CLEANUP (this code is at the WCF GitHub page *** \\
            CloseCommunicationObjects((ICommunicationObject)serviceProxy, factory);
        }
...