Вызов SOAP WSDL WebService из.NET 4 ConsoleApplication. Ошибка заголовка SOAP

Создала консольное приложение.net 4 и добавила веб-ссылку (с именем FACE) для создания прокси-функций. Сервис WSDL является публичным API:

https://webservice.face.gob.es/facturasspp?wsdl

Затем я использую этот скрипт для вызова веб-службы:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography.X509Certificates;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {                
            System.Security.Cryptography.X509Certificates.X509Certificate2 cert = new System.Security.Cryptography.X509Certificates.X509Certificate2(@"C:\DATA\cer.pfx", "MyPass*");
            FACE.ConsultarEstadosResponse respuesta;
            FACE.Service servicio = new GestionaFACE.Service();

            try
            {
                servicio.ClientCertificates.Add(cert);
                respuesta = servicio.consultarEstados();
            }
            catch
            {
                Console.WriteLine(servicio.Url);
            }

        }
    }
}

Тем не менее, я получаю этот ответ от службы:

104La petición SOAP no está bien construida: no se encuentra el SOAP Заголовок

Это означает, что заголовок SOAP отсутствует. Я ожидал, что Visual Studio автоматически создаст правильный заголовок, так как он имеет определение WSDL и создает прокси для службы.

Также при добавлении сертификата к вызову с помощью servicio.ClientCertificates.Add(cert) моя идея заключалась в том, что информация будет добавлена ​​в заголовок SOAP.

Я вижу в Reference.cs, что класс FACE.service был создан как

public partial class Service : System.Web.Services.Protocols.SoapHttpClientProtocol {

Любые идеи о том, как это исправить или использовать другой подход? Я использую Visual Studio 2010 Express

0 ответов

Другие вопросы по тегам