Această mostră se bazează pe eșantionul Transport: UDP. Extinde proba Transport: UDP pentru a sprijini activarea procesului utilizând serviciul de activare Windows (WAS).
Proba constă din trei părți principale:
Activatorul de protocol UDP este un proces autonom care primește mesaje UDP în numele aplicațiilor ce urmează a fi activate.
Un client care utilizează un transport personalizat UDP pentru a trimite mesaje.
Un serviciu (situat într-un flux de lucru activat de serviciul WAS) care primește mesaje pe transportul utilizatorilor UDP.
Activatorul de protocol UDP este o punte între clientul WCF și serviciul WCF. Oferă transfer de date prin intermediul protocolului UDP la nivel de transport. Are două funcții principale.
Adaptorul ascultător WAS (LA), care lucrează împreună cu serviciul WAS pentru a activa procesele ca răspuns la mesajele primite.
Un ascultător de protocol UDP care acceptă mesaje UDP în numele aplicațiilor care trebuie activate.
Activatorul ar trebui să funcționeze ca un program autonom pe computerul serverului. În mod obișnuit, adaptoarele de ascultători WAS (cum ar fi NetTcpActivator și NetPipeActivator) sunt implementate în serviciile Windows cu funcții de lungă durată. Cu toate acestea, pentru simplitate și claritate în această probă, activatorul de protocol este implementat ca o aplicație independentă.
Adaptorul ascultător WAS pentru protocolul UDP este implementat în clasa UdpListenerAdapter. Acest modul, împreună cu serviciul WAS, activează aplicația pentru protocolul UDP. Aceasta se face prin apelarea următoarelor API Webhost:
După apelul inițial WebhostRegisterProtocol, adaptorul de ascultător primește apelul de apel ApplicationCreated de la serviciul WAS pentru toate aplicațiile înregistrate în aplicația applicationHost.config (localizată în% windir% \ system32 \ inetsrv). În acest exemplu, sunt procesate numai aplicațiile cu protocolul UDP activat (cu ID-ul protocolului "net.udp"). Alte implementări pot efectua această procesare în mod diferit dacă o astfel de implementare răspunde modificărilor dinamice din configurația aplicației (de exemplu, aplicația merge de la dezactivat la activat).
Primirea unui apel invers ConfigManagerInitializationCompleted indică faptul că serviciul WAS a finalizat toate notificările pentru inițializarea protocolului. În acest moment, ascultătorul este gata să proceseze cererile de activare.
Când apare o nouă solicitare, care este prima pentru aplicație, adaptorul de ascultător apelează WebhostOpenListenerChannelInstance în WAS, pornind fluxul de lucru dacă nu se execută deja. Apoi, manipulatorii de protocol sunt încărcați și puteți începe să faceți schimb de date între adaptorul ascultător și aplicația virtuală.
Adaptorul ascultător este înregistrat în fișierul% SystemRoot% \ System32 \ inetsrv \ ApplicationHost.config din
În acest exemplu, WCF este utilizat pentru a interacționa cu activatorul și fluxul de lucru WAS. Serviciul din activator se numește serviciul de gestionare.
După ce adaptorul ascultător a sunat WebhostOpenListenerChannelInstance. Managerul proceselor WAS pornește fluxul de lucru dacă nu este deja în curs de execuție. Apoi, managerul de aplicații din cadrul fluxului de lucru încarcă procedura de procesare a procesului UDP (PPH) cu cererea pentru acest ListenerChannelId. La rândul său, PPH solicită IAdphManager .StartAppDomainProtocolListenerChannel. pentru a porni aplicatorul de protocol AppDomain (ADPH) UDP.
Construiți proiectul în Windows Vista. După compilare, în timpul fazei de construcție sunt efectuate următoarele operații.
Legarea UDP este setată la site-ul Web implicit.
Se creează o aplicație virtuală "ServiceModelSamples", indicând calea fizică: "% SystemDrive% \ inetpub \ wwwroot \ servicemodelsamples".
De asemenea, este inclus și protocolul "net.udp" pentru această aplicație virtuală.
Rulați aplicația pentru interfața cu utilizatorul "WasNetActivator.exe". În fila Instalare, selectați următoarele casete de selectare, apoi faceți clic pe Instalează. pentru a instala aceste componente:
Adaptor Listener UDP
Procesoare UDP protocol
Selectați Activarea aplicației interfață utilizator "WasNetActivator.exe". Faceți clic pe Start pentru a porni adaptorul ascultătorului. Acum sunteți gata să începeți programul.
După ce ați terminat lucrul cu această mostră, trebuie să executați fișierul Cleanup.bat pentru a elimina legarea net.udp de la site-ul Web implicit.
După compilare, sunt create patru fișiere binare diferite.
Client.exe: codul clientului. Fișierul App.config este compilat în fișierul de configurare Client.exe.config.
UDPActivation.dll: O bibliotecă care conține toate implementările UDP majore.
Service.dll: Codul de service. Este copiat în directorul \ bin al aplicației virtuale ServiceModelSamples. Fișierul de serviciu este numit Service.svc, iar fișierul de configurare este Web.config. După compilare, acestea sunt copiate în următoarea locație:% SystemDrive% \ Inetpub \ wwwroot \ ServiceModelSamples.
WasNetActivator: program activator UDP.
Asigurați-vă că toate elementele necesare sunt corect instalate. Următorii pași arată cum să executați proba:
Verificați dacă se execută următoarele servicii Windows:
Serviciul de activare Windows (WAS).
Serviciile de informații Internet (IIS): W3SVC.
Apoi rulați activatorul WasNetActivator.exe. În fila Activare, din lista derulantă este selectat un singur protocol, Procedură definită de utilizator. Faceți clic pe butonul Start pentru a porni activatorul.
După pornirea activatorului, puteți rula codul client executând fișierul Client.exe în fereastra de comandă. Următoarea este o ieșire de eșantion: