Kezdőlap > Kategorizálatlan > WCF – Calculator Demo (TCP/IP)

WCF – Calculator Demo (TCP/IP)

2008. május 19. hétfő Hozzászólás Go to comments

Most, hogy elkészítettük az előző blogpostban a BasicHttpBinding alapú példaprogramot, alakítsuk kicsit át. Mert tegyük fel, hogy elkészítettük az alkalmazásunkat és már élesben is működik, de jön a főnök, hogy srácok változott a felállás, nem jó az, hogy http alapú kommunikációt használunk. A TCP sokkal jobb volna. Muszáj átírnotok az egész alkalmazást. Át is kellet volna írnunk az alkalmazásunk nagy részét, ha nincs a WCF. Ugyanis most már csak néhány sort kell, átírunk a szolgáltatás konfigurációs állományába vagy esetlegesen néhány sort az alkalmazás forráskódjában. Írjuk is át.

Server

1. Térjünk vissza a szolgáltatás forráskódjához. (WCFCalacServer)

2. Nyissuk meg az app.config-ot és írjuk át a következő sorokat.
A mexHttpBinding –ot mexNamedPipeBinding –ra. Ugyanis jelen esetben a szolgáltatás és kliens egy azon gépen fog futni.

image

3. Ezen kívül még a serviceMetaData sorhoz adjunk hozzá egy httpGetUrl tagot és adjunk neki egy http címet. Ezen címen fogjuk letölteni majd a meta adatokat, amelyeknek szüksége lesz a kliensnek.

image

4. Ha ezzel megvagyunk, nézzük meg a forráskódunkat. Az Address jelen esetben meg fog változni, hisz nem http alapon történik a kommunikáció. Tehát meg kell változtatnunk. De gondoljunk bele ez elég rugalmatlan. Hisz az alkalmazásunk, ha elkészül, után minden esetben újra és újra le kell fordítanunk, ha más címet szeretnénk biztosítani a számára. Így tegyük azt, hogy a címet elhelyezzük az app.configba. Mégpedig a következőképpen:

image

5. Láthatjuk, hogy jelen esetben a cím net.pipe:// -re kezdődik. Ez a NamedPipeBinding miatt kell.

6. A teljes konfigurációs állomány kb. így fog kinézni:

image

7. Ahhoz, hogy az alkalmazásunkba ezt a címet felhasználjuk a következő lépéseket kell megtennünk.

    • A Solution Explorerbe jobb egérgomb a references-re majd Add references menüpont.
    • A megjelenő listából válasszuk ki a System.Configuration névteret és adjuk hozzá.
    • Usingoljuk be System.Configuration-t
    • Írjuk át az Uri-t a következőképpen

image

    • 5) Mostantól kezdve kicserélhetjük a címet a konfigurációs állományba, és nem kell újra lefordítanunk hozzá az alkalmazásunkat.

8. Most már csak annyi a teendőnk, hogy az eddig használt bindingot kikommentezzük és az új bindingot példányosítjuk.

image

9. Ha ezzel is megvagyunk, indítsuk el az alkalmazásunkat. Figyeljünk oda, hogy ha van tűzfalunk akkor az szólni fog, hogy egy alkalmazás elindult és engedélyezzük-e az alkalmazás számára a kommunikációt. Itt válaszoljunk igennel, különben nem fogjuk tudni elérni a kliensből a szolgáltatást.

Kliens

1. Térjünk vissza a klienshez és töröljük a solution explorerből az ott lévő szolgáltatást.

2. Majd kattintsunk újra jobb egérgombbal a refererencesre és válaszuk ki az Add Service Reference menüpont.

3. A megjelenő ablakba adjuk meg azt az URL címet amit a szolgáltatás kofigurációs fájlában a serviceMetdata-nál megadtunk. Jelen esetben a: http://localhost:8880/Calc -ot. Majd a névterét nevezzük el úgyanúgy mint az előzőt, tehát „szolgaltatas” legyen a neve.

4. ha ezzel meg vagyunk akár el is indíthatjuk az alkalmazásunkat. És most már tcp-n keresztül fognak kommunikálni.

Így azért sokkal hatékonyabb a munka, hogy nem kell külön szolgáltatás írnunk ahhoz, hogy TCP/IP vagy épp HTTP alapon történjen egy kliens és egy szolgáltatás között a kommunikáció.

Advertisements
Kategóriák:Kategorizálatlan
  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: