Jeden z dev pojechał na wakacje i pozostawił mi aplikacje, którą miałem wgrać na serwer testowy i produkcyjny jednak jak się okazało pozostawił małą kaszankę na której naprawianie nie miałem czasu.

Ogólnie nie licząc innych problemów pojawił się problem z odwołaniem do usług WCF i WCF ReST spowodowany przez referencje – hardcodowany w pliku konfiguracyjnym od SL. A to ze nie miałem dużo czasu na myślenie to rozwiązałem to w następujący sposób:

// WCF znajdował się na zupełnie innym serwerze, do którego notabene 
// nie było dostępu zarówno z środowiska Testowego jak i Produkcyjnego

var binding = new BasicHttpBinding();

var serviceAddress = new Uri(InitParams.LegendServiceUrl);

// jeśli hostujemy service na stronie na której jest hostowany SL
// to możemy tak się odwołać do Service
// var serviceAddress = new Uri(Application.Current.Host.Source, 
//                              "../MyService.svc");

var address = new EndpointAddress(serviceAddress);
var legendService = new MapServerPortClient(binding, address);

InitParams to parametry przekazywane do SL – nic nadzwyczajnego domyślne key=value.

Binding nawet tak prosty, że aż pusty jest potrzebny bo inaczej natrafimy na następujacy problem:

Could not find endpoint element with name ‘services’ and contract ‘WcfService1.MyService’ in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this name could be found in the client element.

Na pewno są lepsze rozwiązania, jednak to było szybkie i efektywne, a do tego wciąż w środowisku Dev można aktualizować referencje.

1 KOMENTARZ

Comments are closed.