Utilizzo di Soapsuds.exe con .NET Remoting
Questo argomento è specifico di una tecnologia legacy mantenuta per una questione di compatibilità con le applicazioni esistenti di versioni precedenti e non è consigliato per il nuovo sviluppo. Le applicazioni distribuite devono ora essere sviluppate utilizzando Windows Communication Foundation (WCF).
È possibile utilizzare Soapsuds.exe per generare un assembly o un codice sorgente contenente i metadati necessari per chiamare un oggetto remoto.
Nota: |
---|
Soapsuds.exe funziona solo con oggetti remoti che utilizzano HttpChannel. |
Per generare un assembly, digitare un comando simile al seguente:
soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -oa:MyProxy.dll
Dove l'oggetto remoto è ospitato su un computer chiamato SomeServer el'URL dell'oggetto è MyObject.rem. Si noti l'aggiunta di ?wsdl alla fine dell'URL. Ciò è necessario per il funzionamento di Soapsuds.exe. Si può quindi prendere MyProxy.dll e farvi riferimento nell'applicazione client.
Per generare un codice sorgente, digitare un comando simile al seguente:
soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -gc
Dove l'oggetto remoto è ospitato su un computer chiamato SomeServer el'URL dell'oggetto è MyObject.rem. Si noti l'aggiunta di ?wsdl alla fine dell'URL. Ciò è necessario per il funzionamento di Soapsuds.exe. Si può quindi prendere Server.cs generato e aggiungerlo al progetto dell'applicazione client. Ciò ha il vantaggio supplementare di non dover fornire un assembly proxy separato insieme all'applicazione client.
Indipendentemente dal tipo di output (assembly o codice sorgente), Soapsuds.exe genera per impostazione predefinita quello che viene chiamato un proxy con wrapper. Il proxy con wrapper è una classe derivata da RemotingClientProxy. L'URL dell'oggetto remoto è hardcoded in questa classe derivata. In alternativa è possibile specificare -nowp
sulla riga di comando per generare un proxy senza wrapper. La classe generata per un proxy senza wrapper è una classe vuota. È possibile vedere le differenze tra proxy con e senza wrapper generando due volte il codice sorgente di un oggetto remoto, una volta con -nowp
e una volta senza (assicurarsi di rinominare il file generato con estensione cs; in caso contrario il file verrà sovrascritto quando si esegue nuovamente Soapsuds.exe. È necessario generare proxy senza wrapper perché l'URL dell'oggetto remoto non deve essere hardcoded.
Per ulteriori informazioni sulle opzioni della riga di comando disponibili per soapsuds.exe, vedere: Soapsuds Tool (Soapsuds.exe).