2010-09-30 19 views
8

Potrzebuję opracować serwer WCF (w zasadzie usługę WWW, która ostatecznie uruchomi się w IIS) i aplikację kliencką, która uzyskuje dostęp do usługi. Mam zarówno projekt klienta, jak i serwer w tym samym rozwiązaniu Visual Studio (2008).Visual Studio: Jednoczesne tworzenie klienta i serwera WCF

Jaki jest zalecany sposób połączenia klienta z serwerem podczas programowania?

Od razu przychodzą mi do głowy dwa możliwe rozwiązania: Jednym z nich jest wdrożenie projektu serwera do niektórych usług IIS po każdej zmianie, a drugim jest uruchomienie dwóch instancji Visual Studio i użycie stałego portu TCP (Visual -Studio-zintegrowany) serwer WWW projektu serwera.

Ponieważ żadna z tych opcji wydaje się szczególnie elegancki mi, zastanawiałem się, czy mam może pominąć oczywisty „właściwą drogę”, aby to zrobić ...

Odpowiedz

17

Sposób, w jaki to robię jest taki:
- Kliknij prawym przyciskiem myszy plik rozwiązania i wybierz opcję Ustaw projekty uruchamiania ...
- Wybierz wieloma projektami startowe i wybierz Rozpocznij dla projektu klienta i serwera, pozostawić pozostałe, ustawione na żaden.

Teraz oba projekty będą uruchamiane przy starcie, a będziesz mógł je debugować.

1

bo mam wiele usług WCF używany przez mojego projektu i nie chcę mieć zbyt wiele instancji VS do debugowania, to jest to, co robię: -

Jeśli nie masz problemów z lokalną usługą IIS, możesz wziąć to pod uwagę.

  1. Dla każdej usługi WCF utworzyłem projekt witryny sieci Web.

  2. Projekty internetowe są również udostępniane jako foldery sieciowe w lokalnych usługach IIS. np. http: \ mylocalmachine \ WCFService1 \ servicefile.svc

  3. W moich klientach WCF web.config adres URL usługi jest określony jak powyżej. np (http: \ mylocalmachine \ WCFService1 \ servicefile.svc)

  4. Ponieważ nie chcę wdrożyć ręcznie za każdym razem zmienić usługę, w kompilacji post każdego projektu WCF Service mam zadanie postbuild że kopie zawartość katalogu bin do katalogu bin witryny dla odpowiedniej usługi WCF (jednorazowa konfiguracja dla postbuild)

  5. Moja struktura folderów jest taka, że ​​dla każdego projektu usługowego istnieje host usługi (strona internetowa) projekt na tym samym poziomie, więc budowanie postów jest bardzo proste.

  6. gdy uruchomię mój WCF klienta (F5), projekty usługowe są kompilowane, ich zawartość są kopiowane do kosza stron (czyli automatycznie rozmieszczone na IIS) i mogę debugować każdą usługę po prostu wchodząc do kodu jak mój usługi są w tym samym roztworze jako mojego klienta WCF

Dodatkową zaletą tego podejścia jest to, że moja debugowania (conajmniej usług) również za pomocą IIS podobny do tego, co mój setup produkcja będzie podobne.

Edit: I dont umieścić projekty hosta usługi (strony internetowe) w moim rozwiązanie gdyż w przeciwnym razie podczas uruchamiania mojego klienta WCF, VS otwiera Cassini instancji dla każdego z nich, co jest irytujące, a ja tak czy inaczej nie potrzebują lub użyj

Powiązane problemy