Domanda

Ho un servizio WCF (diciamo che WCFService1) è distribuito su due macchine remote. Poiché lo stesso servizio è distribuito su due macchine diverse, hanno un'interfaccia comune e metodi comuni esposti.

WCFService1 è distribuito su Machine1 e Machine2.

Per utilizzare il servizio WCF dal computer client, ho creato un'app client:

  1. Ho aggiunto un riferimento in fase di progettazione del servizio WCF (WCFService1) (con l'aiuto dell'URL http://11.12.25.23/WCFService/Service1.svc ).

  2. Ora posso invocare i metodi esposti nel servizio. Fino ad ora va bene ...

Ora la mia domanda è se devo aggiornare il client in fase di esecuzione con lo stesso servizio ospitato su una macchina diversa con URL diverso (diciamo http://12.12.24.24/WCFService/Service1.svc ), come posso farlo?

Al momento lo sto facendo:

BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://12.12.24.24/WCFService/Service1.svc");
MyServiceClient serviceClient = new MyServiceClient(binding, address);

ma ogni volta che utilizzo per invocare il metodo esposto nel servizio ho riscontrato un errore di corrispondenza errata di associazione.

È stato utile?

Soluzione

Hai provato prima a invocare il tuo cliente?

es:

MyWCFClient client = new MyWCFClient();
client.EndPoint.Address = new EndpointAddress("http://somewhere:888/here.svc");

Altri suggerimenti

Sospetto che se guardi il tuo file web.config su Machine1, vedrai che nell'associazione c'è WSHttpBinding (o qualcosa di diverso da BasicHttpBinding). Se lo cambi in BasicHttpBinding (supponendo che sia quello che vuoi davvero), rimuoverai questo errore.

Come è configurato il tuo servizio? Mostraci la tua configurazione lato server e lato client!

La mancata corrispondenza del bind significa che non stai usando lo stesso bind, oppure alcuni parametri vitali sul bind sono diversi - ci deve essere qualcosa di configurato sbagliato - quindi mostraci la configurazione!

Marc

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