2010-04-05 10 views
9

Sono iscritto, ho scaricato codice di esempio, ho un WSDL ... eppure non ho idea di come ottenere questa roba nella mia applicazione .Net esistente. Il WSDL era in un file zip, non un URL, quindi non posso semplicemente "Aggiungi riferimento Web". Ho eseguito lo strumento wsdl dal prompt dei comandi .Net, e ha reso una buona lezione per me ... eppure lasciarlo nella mia cartella web_reference non mi dà alcun tipo di classe instantaneabile.Integrazione di servizi Web FedEx in .Net, bloccato al passaggio 1

So che mi manca qualcosa di stupido. Qualcuno può indicarmi la direzione giusta per favore?

risposta

2

In realtà, è sufficiente "Aggiungi riferimento Web". Dai il percorso all'URL.

OTOH, si dovrebbe fare tutto il nuovo sviluppo del servizio web (anche lo sviluppo del client) usando WCF. Microsoft ora considera i servizi Web ASMX come "tecnologia legacy".

BTW, ho appena provato a utilizzare il loro servizio di convalida degli indirizzi e non funzionerà con .NET. Sia i client ASMX che quelli WCF tenteranno di utilizzare il serializzatore XML per consumare questo servizio e vi è un bug che impedisce l'utilizzo di quel servizio.

+0

Ho un paio di domande, ma # 1 è, non funzionerà con .Net? Come diavolo può essere? Voglio dire, la comunicazione con FedEx e .Net non può essere una cosa oscura ... deve essere usata in tonnellate di app diverse là fuori. Destra? In secondo luogo, se il WSDL che mi hanno fornito si trova in un file zip, quindi non ho un vero URL da passare alla finestra di dialogo "Aggiungi riferimento Web", vero? O stai dicendo che il percorso per il .zip dovrebbe essere sufficiente? Attualmente sto cercando di utilizzare il servizio di verifica degli indirizzi in questo momento - questo è quello che ci interessa in questo momento. Questo non è buono... –

+0

@Matt: non funzionerà con .NET perché il servizio non è conforme a WS-I BP-1 e, in questo caso, provoca un bug in XmlSerializer che è improbabile che venga risolto. Il percorso del file WSDL è sufficiente. Estrailo dallo ZIP. –

+0

Quindi, mi stai dicendo che non posso usare il WSDL o qualcosa del genere, e devo fondamentalmente capire come farlo con le richieste e le cose http in puro xml? –

0

Matt, il file zip WSDL ha il WSDL e le transazioni associate per quel servizio. Decomprimere il file e quindi "Aggiungi il riferimento" al WSDL nel codice.

+0

@support: ci ho provato ieri. Non ha funzionato. –

0

Provare a modificare lo spazio dei nomi della classe proxy su quello dell'applicazione. Attualmente utilizzo la classe proxy con C# e funziona nonostante la documentazione e gli esempi limitati di FedEx.

+0

@Damon: come aiuta? –

9

Il modo corretto per caricare il file WSDL API FedEx in Visual Studio 2010:

  1. Aprire Esplora soluzioni
  2. Fare clic destro del progetto
  3. Fare clic su 'Aggiungi riferimento al servizio'
  4. Fare clic sul Pulsante 'Avanzato ...'
  5. Fare clic sul pulsante "Aggiungi riferimento Web ..."
  6. Immettere il percorso esatto per il file WSDL per lo specifico Riferimento web FedEx che stai utilizzando. Ad esempio, ho estratto il mio nella radice del mio C: \ drive, quindi tutto ciò che ho inserito nel campo URL era "C: \ ShipService.wsdl" senza virgolette. Se lasci le virgolette, non funzionerà.
  7. Quando si preme andare, Visual Studio dovrebbe consumare il wsdl in classi lavorabili per voi. Fai clic su Aggiungi riferimento e divertiti!

Nota: assicurarsi di leggere bene la documentazione di FedEx - molti dei loro servizi hanno gotchyas e l'implementazione può essere un incubo. Ad esempio, il loro servizio di convalida degli indirizzi è consumato in modo errato e crea matrici bidimensionali in Reference.cs dove non dovrebbero esistere - questo è dettagliato nella documentazione. Peggio ancora, il fatto che non consentano la convalida dell'indirizzo sul proprio ambiente di sviluppo non è documentato da nessuna parte! In bocca al lupo!

+0

Questo ha funzionato per me. Grazie mille. –

+0

Thax molto, ho perso più di 2 ore per trovare l'URL del server –