Ho un vecchio file WSDL e voglio creare un server basato su questo file WSDL.
Il WSDL è generato da un ASMX (suppongo ma non sono sicuro).
Come posso raggiungere questo objective ?
domanda originale in cui l’OP pensava di aver bisogno di creare un client basato sul WSDL.
Utilizzando svcutil, è ansible creare interfacce e classi (contratti dati) dal WSDL.
svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)
Questo creerà un file chiamato “your.cs” in C # (o “your.vb” in VB.NET) che contiene tutti gli elementi necessari.
Ora, è necessario creare una class “MyService” che implementerà l’interfaccia di servizio (IServiceInterface) – o le diverse interfacce di servizio – e questa è l’istanza del server.
Ora una class di per sé non è ancora di aiuto, è necessario ospitare il servizio da qualche parte. È necessario creare la propria istanza ServiceHost che ospita il servizio, configurare gli endpoint e così via oppure è ansible ospitare il servizio in IIS.
Ci sono buone risorse là fuori se sai cosa cercare. Prova “Contratto prima” e WCF. o “WSDL Primo” e WCF.
Ecco una selezione:
Utilizzare svcutil.exe con l’opzione /sc
per generare i contratti WCF. Questo creerà un file di codice che puoi aggiungere al tuo progetto. Conterrà tutte le interfacce e i tipi di dati necessari per creare il tuo servizio. Modificare la posizione di output utilizzando l’ /o
, oppure è ansible trovare il file nella cartella in cui è stato eseguito svcutil.exe. La lingua predefinita è C # ma penso che (non l’ho mai provato) dovresti essere in grado di cambiarlo usando /l:vb
.
svcutil /sc "WSDL file path"
Se il tuo WSDL ha file XSD supportati, passa quelli in come argomenti dopo il WSDL.
svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"
Quindi crea una nuova class che è il tuo servizio e implementa l’interfaccia del contratto appena creata.
È ansible utilizzare svcutil.exe per generare codice client. Ciò includerebbe la definizione del contratto di servizio e eventuali contratti di dati e contratti di falla richiesti.
Quindi, elimina semplicemente il codice cliente: classi che implementano i contratti di servizio. Dovrai quindi implementarli tu stesso, al tuo servizio.
Utilizzando lo strumento “Aggiungi riferimento servizio” in Visual Studio, è ansible inserire l’indirizzo come:
File: ///path/to/wsdl/file.wsdl
E si caricherà correttamente.