none
Implementazione in C# del Web Services Servizio Telematico Dogane RRS feed

  • Domanda

  • Ciao a tutti, come posso risolvere??? Grazie Mille 

    sto provando ad Implementare in C# il Web Services Servizio Telematico Dogane in questo modo:

                   WSHttpBinding BasicBinding = new WSHttpBinding();
                    EndpointAddress address = new EndpointAddress("https://ws-telematico.agenziadogane.it/TelematicoFtpEjbHttpRouter/TelematicoFtpWsBindingImplService");

                    BasicBinding.SendTimeout = TimeSpan.FromSeconds(25);
                    BasicBinding.Security.Mode =   SecurityMode.Transport;
                    BasicBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;

                    ServiceReference1.TelematicoFtpWsBindingImplClient myService2  = new ServiceReference1.TelematicoFtpWsBindingImplClient(BasicBinding, address);

                    myService2.ClientCredentials.UserName.UserName = Properties.Settings.Default.utente;
                    myService2.ClientCredentials.UserName.Password = Properties.Settings.Default.password;
                    Logger(myService2.dir("*.*").ToString());
                    MessageBox.Show("Finito");

    Nella riga myService2.dir("*.*").ToString() mi dà questo errore:

    System.ServiceModel.ProtocolException: Il tipo di contenuto multipart/related; boundary="MIMEBoundaryurn_uuid_75EC411DB9D0B3983F1395331924138"; type="application/xop+xml"; start="<0.urn:uuid:75EC411DB9D0B3983F1395331924139@apache.org>"; start-info="text/xml" del messaggio di risposta non corrisponde al tipo di contenuto del binding (application/soap+xml; charset=utf-8). Se si utilizza un codificatore standard, verificare che il metodo IsContentTypeSupported sia implementato correttamente. I primi 869 byte della risposta erano: '--MIMEBoundaryurn_uuid_75EC411DB9D0B3983F1395331924138
    Content-Type: application/xop+xml; charset=utf-8; type="text/xml"
    Content-Transfer-Encoding: binary
    Content-ID: <0.urn:uuid:75EC411DB9D0B3983F1395331924139@apache.org>

    <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>http://www.w3.org/2005/08/addressing/soap/fault</wsa:Action><wsa:RelatesTo>urn:uuid:c2359953-0b79-4c4c-8d1c-f6e18e7415aa</wsa:RelatesTo></soapenv:Header><soapenv:Body><soapenv:Fault><faultcode>soapenv:VersionMismatch</faultcode><faultstring>Incoming SOAP message protocol is version 1.2, but endpoint is configured for SOAP 1.1</faultstring></soapenv:Fault></soapenv:Body></soapenv:Envelope>
    --MIMEBoundaryurn_uuid_75EC411DB9D0B3983F1395331924138--'. ---> System.Net.WebException: Errore del server remoto: (500) Errore interno del server.
       in System.Net.HttpWebRequest.GetResponse()
       in System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
       --- Fine della traccia dello stack dell'eccezione interna ---

    Server stack trace: 
       in System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory`1 factory, WebException responseException, ChannelBinding channelBinding)
       in System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
       in System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
       in System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
       in System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       in System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
       in System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       in System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]: 
       in System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       in System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       in Net2AD.ServiceReference1.TelematicoFtpWsBindingImpl.dir(dirRequest request)
       in Net2AD.ServiceReference1.TelematicoFtpWsBindingImplClient.Net2AD.ServiceReference1.TelematicoFtpWsBindingImpl.dir(dirRequest request) in x:\Documents\Programmazione\NET\Net2AD\NET2Arc\NET2Arc\Service References\ServiceReference1\Reference.cs:riga 456
       in Net2AD.ServiceReference1.TelematicoFtpWsBindingImplClient.dir(String pattern) in x:\Documents\Programmazione\NET\Net2AD\NET2Arc\NET2Arc\Service References\ServiceReference1\Reference.cs:riga 462
       in Net2AD.frmMain.LaunchCommandLineApp() in x:\Documents\Programmazione\NET\Net2AD\NET2Arc\NET2Arc\frmMain.cs:riga 44


    giovedì 20 marzo 2014 15:50

Tutte le risposte

  • ciao

    il problema è di compatibilità con il messaggio SOAP che invii e quello che il server Apache si aspetta

    normalmente, quando in VisualStudio fai AddServiceReference, viene prodotto tutto in automatico, anche le impostazioni di autenticazione, incluse nel .config

    nel c#, ti resta da aprire il client, e passare le credenziali come hai già fatto

    facci sapere se hai ancora problemi

    un saluto


    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo
    Italy
     

    mercoledì 26 marzo 2014 11:57
    Postatore
  • Infatti quella parte funziona tutto cioè il collegamento col WebService.

    Il mio problema è che non funziona l'interazione (cioè ricevere la risposta) come nell'esempio che ho postato .dir("*.*") , per questo cosa devo fare?

    venerdì 28 marzo 2014 11:27