none
ACCESO A SERVICIO WEB RRS feed

  • Pregunta

  • Buenas tardes.

    Estoy implementando una aplicación de escritorio que efectua una serie de llamadas a varios servicios web.
    He referenciasdo cada unos de los servicios en la aplicación y consigo los resultadois deseados con la mayoría de ellos.

    Al referenciar cada uno de los servicios se generan las clases pertinentes en función de los diferentes archivos WSLD.

    Hay un servicio que a diferencia de los otros utiliza en las funciones el soap operacion style "document" en lugar de "rpc".

    Las llamadas no dan ningun error, pero el servicio no efectua nada y tampoco soy capaz de capturar los valores devueltos.

    Alguien puede darme luz?

    El fichero WSLD que publica el servicio es el siguiente

    <?xml version="1.0" encoding="UTF-8"?>
    
    <wsdl:definitions xmlns:tns="http://tempuri.org/" targetNamespace="http://tempuri.org/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="LibIcgDataExchangeService" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
    <xs:schema targetNamespace="http://tempuri.org/" elementFormDefault="qualified"></xs:schema></wsdl:types>
    <wsdl:message name="SvcDataExchangeService___ExecuteMappingRequest">
    <wsdl:part name="Comando" type="xs:string"/><wsdl:part name="Datos" type="xs:string"/></wsdl:message>
    <wsdl:message name="SvcDataExchangeService___ExecuteMappingResponse">
    <wsdl:part name="Result" type="xs:int"/><wsdl:part name="Datos" type="xs:string"/><wsdl:part name="MsgError" type="xs:string"/><wsdl:part name="Info" type="xs:string"/></wsdl:message><wsdl:message name="SvcDataExchangeService___TestConexionRequest"></wsdl:message>
    <wsdl:message name="SvcDataExchangeService___TestConexionResponse">
    <wsdl:part name="Result" type="xs:boolean"/></wsdl:message>
    <wsdl:portType name="SvcDataExchangeService">
    <wsdl:operation name="ExecuteMapping">
    <wsdl:input message="tns:SvcDataExchangeService___ExecuteMappingRequest"/><wsdl:output message="tns:SvcDataExchangeService___ExecuteMappingResponse"/></wsdl:operation>
    <wsdl:operation name="TestConexion">
    <wsdl:input message="tns:SvcDataExchangeService___TestConexionRequest"/><wsdl:output message="tns:SvcDataExchangeService___TestConexionResponse"/></wsdl:operation></wsdl:portType>
    <wsdl:binding name="SvcDataExchangeServiceBinding" type="tns:SvcDataExchangeService">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="ExecuteMapping">
    <soap:operation style="document" soapAction="urn:LibIcgDataExchangeService-SvcDataExchangeService#ExecuteMapping"/>
    <wsdl:input>
    <soap:body namespace="urn:LibIcgDataExchangeService-SvcDataExchangeService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/></wsdl:input>
    <wsdl:output>
    <soap:body namespace="urn:LibIcgDataExchangeService-SvcDataExchangeService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/></wsdl:output></wsdl:operation>
    <wsdl:operation name="TestConexion">
    <soap:operation style="document" soapAction="urn:LibIcgDataExchangeService-SvcDataExchangeService#TestConexion"/>
    <wsdl:input>
    <soap:body namespace="urn:LibIcgDataExchangeService-SvcDataExchangeService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/></wsdl:input>
    <wsdl:output>
    <soap:body namespace="urn:LibIcgDataExchangeService-SvcDataExchangeService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/></wsdl:output></wsdl:operation></wsdl:binding>
    <wsdl:service name="SvcDataExchangeService">
    <wsdl:port name="SvcDataExchangeServicePort" binding="tns:SvcDataExchangeServiceBinding">
    <soap:address location="http://192.168.13.32:8102/soap?service=SvcDataExchangeService"/></wsdl:port></wsdl:service></wsdl:definitions>


    Los procedimientos que indico en la clase del formulario son los siguientes                                                                               Imports DataExchange.nDataExchange
    Imports System.Web.Services
    Imports System.Web.Services.Protocols
    Imports System.Text
    
    Public Class Form1
        Dim ws As New SvcDataExchangeService
        Dim cOrden As New System.Text.StringBuilder
        Dim cComando As System.String
        Dim cDatos As String = ""
        Dim cMsgError As String = ""
        Dim cInfo As String = ""
        Dim cDat As String
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Me.Cursor = Cursors.AppStarting
            cComando = ConvertAsciiToUnicode("icgDataExchange.exe 138 SERVICE -PARAMVALUE FECHAINI=01/01/2007* -PARAMVALUE FECHAFIN=30/12/2010*")
            cOrden.Append(cComando)
            Dim c0 = ws.ExecuteMapping(cOrden.ToString, cDatos, cMsgError, cInfo)
            If cDatos Is Nothing Then
            Else
                txtDatos.Text = cDatos.ToString
            End If
            If cMsgError Is Nothing Then
            Else
                txtError.Text = cMsgError.ToString
            End If
            If cInfo Is Nothing Then
            Else
                txtInfo.Text = cInfo.ToString
            End If
    
            Me.Cursor = Cursors.Default
        End Sub                                                                                                                                                                                                                 End Class

    miércoles, 30 de diciembre de 2015 16:29