HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Saját Web szerver készítése


Példaprogram letöltése

11023 bájt

A Windows rendszerekre telepíthető Internet Information Services (IIS) Web szerver igen népszerű, széles körben elterjedt alkalmazás. Webes alkalmazásaink futtatására kézenfekvő választás. Cikkünkben elkészítünk egy azonos elven működő Web szervert C#-ban, mely nem tartalmaz ugyanannyi kényelmi funkciót, mint az IIS, de alkalmas lesz a HTTP kérések fogadására, értelmezésére, valamint a kérések kiszolgálására.

A mellékelt példa kipróbálása előtt el kell végezni bizonyos beállításokat. Ezekről a cikk Bevezető című szakaszában olvashat.
Bevezető
A projekt egy Windows-os szervizalkalmazást tartalmaz, mely elindulva Web szerverként funkcionál. A projekt fordítása előtt a következőket kell tennünk:
  • A szervizalkalmazás úgy készült, hogy feltételezzük a C meghajtó létezését a számítógépen. Amennyiben nem létezik, akkor a kódban át kell írni a hivatkozásokat. A hivatkozások megtalálhatók: Server.cs (57. sor), WServer.xml (4. Sor) és Create.js (4.,9.,10.,11. sorok).
  • Amennyiben létezik a C meghajtó, akkor a projekt fordítása után le kell futtatni a Create.js állományt. A script létrehoz egy WebServer nevű mappát a meghajtó gyökerében, és átmásolja ezen új mappába a projekt könyvtárában található WServer.exe alkalmazást, a WServer.xml és a Default.html állományokat.
  • Utolsó lépésként installálnunk kell a szervizalkalmazást. Ezt a .NET Framework INSTALLUTIL.EXE segédprogramjával végezhetjük el. Indítsunk el egy .NET parancssort, majd gépeljük be a következőket: installutil <létező meghajtó>:\\WebServer\WServer.exe
  • Indítsuk el a szervizalkalmazást.
A felsorolt lépések elvégzése után elindíthatunk egy példányt a böngészőnkből, és megadhatjuk a következő URL-t:
http://localhost:8080/ 
Fontos, hogy a port számát feltüntessük, ellenkező esetben – amennyiben van egyéb Web szerver a számítógépen telepítve – az alapértelmezett szerver fogja kiszolgálni a kérésünket. A port megadásával saját szervizünket hívhatjuk meg, mely visszaküldi a szerver alapértelmezett, a WebServer mappában most megtalálható Default.html HTML oldalt a böngészőbe.
A Web szerver jellemzői
A szervizalkalmazás WebServerClass osztálya felelős a kérések fogadásáért, valamit a válasz elküldéséért. Az osztályt a szerviz OnStart metódusában példányosítjuk, átadva paraméterként a konfigurációs XML állomány elérési útvonalát.
new WebServerClass("C:\\WebServer\\WServer.xml");
A XML állomány <sites> tagjában található bejegyzések kiolvasása után indítja el a szerver a dolgozó szálat, mely figyeli a megadott port-ot.
<sites>
  <site name='sampleSite' domain='*' port='8080' folder='c:/WebServer' />
</sites>
A <defaults> tagban található bejegyzések tartalmazzák a szerver alapértelmezett oldalainak nevét. Amelyik létezik az adott mappában, az töltődik be a fenti HTTP kérés megadása után.
<defaults>
  <default filename="default.html" />
  ...
</defaults>
A WebServerClass osztály ThreadStart metódusa folyamatosan fut a háttérben, mely figyeli a 8080-as port-ot. A port-on érkező HTTP kéréseket feldolgozza. A nem a HTTP csatornán érkező kéréseket elutasítja, a hibaértesítőt visszaküldi a kliensnek.
Amennyiben a kérés teljesíthető – vagyis a kért erőforrás megtalálható a mappában –, akkor azt visszaküldi a böngészőre a SendResponse metódussal.
A kéréseket egy TcpListener objektum figyeli. A szerver kódja csak alapvető hibadetektálást tartalmaz, inkább a kevés kódolással történő megvalósításra helyeztük a hangsúlyt.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 624. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |