从.NET 4 ConsoleApplication调用SOAP WSDL WebService。 SOAP标头错误

时间:2018-06-29 12:27:22

标签: .net web-services soap .net-4.0 wsdl

创建了一个.net 4控制台应用程序,并添加了一个Web参考(名为FACE),以便创建代理功能。 WSDL服务是一个公共API:

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

然后我使用此脚本调用Web服务:

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);
            }

        }
    }
}

但是,我从服务获得以下响应:

104 无需构建任何通用的SOAP标头:没有安全的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 个答案:

没有答案