Come generare il riferimento al servizio con il solo file wsdl fisico


123

Creo e utilizzo servizi Web da anni e sono sempre stato in grado di utilizzare Visual Studio per creare un riferimento al servizio dal client. Ho un servizio di terze parti con cui devo lavorare e si rifiutano di aprire la loro sicurezza in modo che io possa vedere il wsdl e fare riferimento al servizio. È un servizio rivolto al pubblico, quindi non vedo la necessità di quel livello di sicurezza, ma è quello che è.

So che questa è una domanda n00b e mi vergogno a chiederla, ma come faccio a creare le informazioni di riferimento del servizio equivalenti nel mio client quando tutto ciò che ho a disposizione è una copia fisica del wsdl che il cliente mi ha inviato via email? Il web.config cambia, lo strato oggetto sui dati SOAP, ecc. Proprio come con un riferimento al servizio automatizzato, voglio solo aprire una connessione al servizio e iniziare a usarlo con gli oggetti definiti.

Il servizio di terze parti non è WCF per quanto ne so, ma è SOAP. Sto usando VS 2010 btw. Grazie in anticipo, Ken


Risposte:


180

Questo potrebbe essere il metodo più semplice

  • Fare clic con il tasto destro sul progetto e selezionare "Aggiungi riferimento al servizio ..."
  • Nella casella Indirizzo: immettere il percorso fisico (C: \ test \ project ....) del file wsdl scaricato / modificato.
  • Hit Go

11
Se usi "Copia come percorso", togli le virgolette.
O. Jones

Quando si salva il wsdl per trasmetterlo a qualcun altro, "view source" del wsdl dal webservice in chrome mi ha dato un wsdl funzionante, mentre IE11 no. YMMV.
arcangelo76

68

Ci sono due modi per farlo. Puoi utilizzare l'IDE per generare un WSDL o puoi farlo tramite la riga di comando.

1. Per crearlo tramite l'IDE:

Nel riquadro Esplora soluzioni, fai clic con il pulsante destro del mouse sul progetto a cui desideri aggiungere il servizio:

inserisci qui la descrizione dell'immagine

Quindi, puoi inserire il percorso del tuo servizio WSDL e premere vai:

inserisci qui la descrizione dell'immagine

2. Per crearlo tramite la riga di comando:

Aprire un prompt dei comandi di VS 2010 (Programmi -> Visual Studio 2010 -> Visual Studio Tools)
Quindi eseguire:

WSDL /verbose C:\path\to\wsdl

WSDL.exe produrrà quindi un file .cs per il tuo consumo.

Se hai altre dipendenze che hai ricevuto con il file, come xsd, aggiungile all'elenco degli argomenti:

WSDL /verbose C:\path\to\wsdl C:\path\to\some\xsd C:\path\to\some\xsd

Se hai bisogno dell'output VB, usa /language:VBin aggiunta al file /verbose.


Ottengo "Impossibile importare l'associazione" blah "dallo spazio dei nomi" blahURL "e Impossibile importare l'operazione" SomeRequest ", manca l'elemento" xxx ". Ciò significa che devono fornirmi altri file di supporto o che hanno la loro sicurezza così dannatamente bloccata che non posso fare nulla?
kfoster

Sicuramente sembra che ti mancano le dipendenze. Apri il WSDL e guarda in alto. Se vedi righe che importcontengono un seguito da schemaLocation che punta a un percorso xsd, avrai bisogno anche di quei file xsd.
Lynn Crumbling

Grazie per la risposta. Ho un'e-mail in sospeso con il cliente per vedere se posso ottenere le importazioni xsd necessarie. È così frustrante però, quando fatto bene, inserisco semplicemente un URL nella finestra di dialogo ServiceReference, premo un pulsante e viola! Sono a circa 3 righe di codice dal chiamare un metodo di servizio. L'intero processo dura circa 5 minuti. Ma ho lavorato con questo client per settimane e non sono arrivato da nessuna parte perché i loro addetti alla sicurezza non apriranno l'accesso a nessuna definizione di servizio tramite il web.
kfoster

È rozzo. Attualmente sto aspettando una connessione VPN per un progetto, me stesso. Fortunatamente, mi hanno fornito il wsdl e i documenti xsd di accompagnamento in anticipo. Quindi hai trovato quelle importazioni nel wsdl?
Lynn Crumbling

Sì. Risulta per 4 servizi che mi hanno dato wsdl per 2 di loro e xsd per gli altri 2, quindi nessun set completo di file per nessuno dei servizi. Ma alla fine ho ottenuto xsd e sono stato in grado di generare file .cs per 2 dei servizi, presumo che gli altri 2 seguiranno. Grazie.
kfoster
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.