15

Nov

Client-Server con ricerca automatica con Ws-discovery

ciao

 

DEMO

 

se abbiamo l’esigenza di usare dei servizi con più di un server a disposizione, e non vogliamo conoscere a priori l’URI del server… possiamo usare una tecnologia standard sui servizi SOAP detta WS-Discovery

il client è minimale, cerco il server, lo trovo, creo un proxy, lo chiamo:

//cerco il server
DynamicEndpoint endpoint = new DynamicEndpoint(ContractDescription.GetContract(typeof(Services.IDateTimeService)),
                                    new WSHttpBinding(SecurityMode.None)); //stessa configurazione di sicurezza del server

//creo una factory per generare client
var channel = new ChannelFactory(endpoint);

//creo un client-proxy per chiamarlo
var risp = channel.CreateChannel();


//chiamo

Console.WriteLine(risp.GetServerTime());
Console.ReadLine();

 

il server è semplice, ma richiede un po di configurazione in più nel .config:

 



 
   
     
       
         
         
         
           
             
           

         

       

     

   

   
     
       
         
            http://localhost/discoverytest"/>
         

       

       
       
       
     

   

   
     
       
       
     

   

   
     
       
         
         
       

     

   

 

DEMO

 

a presto

by Antonio Esposito on 11/15/2011