Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: WCF w Silverlight

Hej napisałem małą stronkę „HelloWorld” w SL3. Dodatkowo wykorzystuje ona prosty WCFService z jedną metodą zwracającą stringa na podstawie przekazanego stringa. Na lokalu działa wszystko ok. Jak jednak to przenieść na sieć. Mam darmowe konto na http://onsi.pl. Nigdy wcześniej nie umieszczałem service’ów na sieci i nie mam pojęcia jak to zrobić, bo póki co mam referencje do localhost’a co oczywiście skutkuje błędem. Zatem gdzie i w jaki sposób umieszcza się service’y na sieci?? Czy trzeba mieć jakiś specjalny hosting??

konto usunięte

Temat: WCF w Silverlight

A jaki binding używa twoja usługa? To jak wystawiasz usługę i co jest do jej wystawienia potrzebne zalezy od niego. Dodatkowo WCF działa w FullTrust, więc musisz mieć zagwarantowane to na hostingu.
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: WCF w Silverlight

Jeżeli o to chodzi, to: basicBinding. Ale zakładając że jest FullTrust (sprawdzę jeszcze) to jak wrzucić taki service - ogranicza się to do przegrania plików (svc, itp.) tam gdzie są pliki strony na sieci? Co i gdzie muszę wrzucić?
Może znacie jakiś artykuł z przykładem (byleby nie localhost'owym :)).

konto usunięte

Temat: WCF w Silverlight

Przykładu jakiegoś nie mam, ale basic to chyba zwykły ASMX będzie, nie? Najłatwiej chyba spróbować po prostu użyć deploy w VS...

konto usunięte

Temat: WCF w Silverlight

Norbert Maziarz:
Jeżeli o to chodzi, to: basicBinding. Ale zakładając że jest FullTrust (sprawdzę jeszcze) to jak wrzucić taki service - ogranicza się to do przegrania plików (svc, itp.) tam gdzie są pliki strony na sieci? Co i gdzie muszę wrzucić?
Może znacie jakiś artykuł z przykładem (byleby nie localhost'owym :)).

Wydaje mi się, że basic binding w SL nie wymaga Full Trust.

Co do service musisz mieć parę rzeczy:
1) Utwórz w App_Code klasę dziedziczącą po ServiceHostFactory, przeciąż (override) metodę CreateServiceHost, coś a'la to:

Uri webServiceAddress = new Uri(sciezkaDoWebservice);
ServiceHost webServiceHost = new ServiceHost(serviceType, webServiceAddress);
return webServiceHost;

gdzie "sciezkaDoWebservice" zamieniasz na cos w stylu "http://mojadomena.pl/MojService.svc" (lub asmx).

2) Otworz MojService.svc i na koncu (jako atrybut) dodaj:

Factory="MojaKlasaDziedziczacaPoServiceHostFactory"


3) W kliencie uaktualnij referencję do serwisu:

<client>
<endpoint address="http://mojadomena.pl/MojService.svc" (...)


To właściwie tyle potrzebujesz, możesz pobawić się z ustawianym endpointem w kodzie (żeby nie trzeba było uaktualniać referencji). Pamiętaj, że aplikacja i webservice musi być w tej samej domenie, jeżeli tak nie jest musisz dodatkowo zadbać o cross domain request policy.

Następna dyskusja:

Silverlight




Wyślij zaproszenie do