Domanda

grazie per qualsiasi assistenza.

Sto creando un servizio web wcf per un client esterno. Il client richiede una copia di wsdl. Attualmente sto aspettando di poter fornire al cliente l'accesso al servizio.

quando vado sul mio server web locale che esegue il servizio ( http: //localhost/Services.svc? wsdl ) Mi viene mostrato il wsdl, i dati forniti contengono le firme del metodo (dal codice .svc dietro), ma non contiene gli oggetti modello inclusi (Cliente, Ordine, ext).

Per ottenere quegli oggetti, posso trovare i riferimenti nei dati mostrati e andare all'URL

Per me fornire tutte le informazioni necessarie al client, in modo che abbiano l'intero wsdl dovrei fornire lo schema principale e anche ciascuno degli schemi importati?

o esiste un altro modo per farlo (diverso dal client che colpisce un server)

ovvero: esiste un modo per impacchettarli tutti in un unico file?
(Sembra che qualcosa sarebbe disponibile per estrarre ciascuno di quei file?)

Se dovessi dare un .zip con ciascuno dei file, sarebbe sufficiente?

Grazie, Steven

È stato utile?

Soluzione

WCF impacchetta i suoi WSDL e XSD (schema XML per descrivere i dati inviati) in vari pezzi, come hai già notato. Questi sono referenziati dal tuo WSDL principale con href aggiuntivi.

O ancora meglio: puoi eseguire il " svcutil -metadata " comando nella riga di comando contro la DLL o EXE che contiene l'implementazione del servizio - questo creerà tutti i file necessari (in genere diversi WSDl e diversi XSD) nella directory in cui si esegue il comando svcutil. Questo di solito è un modo più affidabile rispetto al mettere insieme i file WSDL e XSD dall'URL? Wsdl (di solito finisci per perdere uno o due file).

Marc

Altri suggerimenti

Se hai scaricato manualmente tutti i sub-WSDL e XSD referenziati, allora sì, funzionerebbe; ma è ingombrante, per non dire altro.

Un'opzione che vale la pena esaminare sarebbe quella di utilizzare di Christian Weyer Estensioni WCF per appiattire il tuo WSDL in modo che WCF generi tutto in un unico file, quindi lo dia al tuo client.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top