Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az UdpActivation minta a Transport: UDP mintán alapul. Kiterjeszti a Transport: UDP-mintát a folyamataktiválás támogatására a Windows Folyamataktiválási szolgáltatás (WAS) használatával.
A minta három fő részből áll:
Az UDP Protocol Activator egy önálló folyamat, amely UDP-üzeneteket fogad az aktiválni kívánt alkalmazások nevében.
Egy ügyfél, amely az UDP egyéni átvitelét használja az üzenetek küldéséhez.
A WAS által aktivált feldolgozói folyamatban üzemeltetett szolgáltatás, amely üzeneteket fogad az UDP egyéni átvitelén keresztül.
UDP protokollaktivátor
Az UDP Protocol Activator egy híd a WCF-ügyfél és a WCF szolgáltatás között. Adatkommunikációt biztosít az átviteli réteg UDP protokollján keresztül. Két fő funkciója van:
WAS figyelőadapter (LA), amely a WAS-val együttműködve aktiválja a folyamatokat a bejövő üzenetekre válaszul.
UDP protokollfigyelő, amely az aktiválandó alkalmazások nevében fogadja az UDP-üzeneteket.
Az aktiválónak önálló programként kell futnia a kiszolgálógépen. A WAS figyelőadaptereket (például a NetTcpActivatort és a NetPipeActivatort) általában hosszú ideig futó Windows-szolgáltatásokban implementálják. Az egyszerűség és az egyértelműség kedvéért azonban ez a minta önálló alkalmazásként implementálja a protokollaktivátort.
WAS figyelőadapter
Az UDP WAS figyelőadaptere az UdpListenerAdapter osztályban van implementálva. Ez a modul interakcióba lép a WAS-val az UDP protokoll alkalmazásaktiválása céljából. Ez a következő Webhost API-k meghívásával érhető el:
WebhostRegisterProtocolWebhostUnregisterProtocolWebhostOpenListenerChannelInstanceWebhostCloseAllListenerChannelInstances
Az WebhostRegisterProtocol kezdeti hívása után a figyelőadapter megkapja a ApplicationCreated visszahívást a WAS-tól az applicationHost.config-ban regisztrált összes alkalmazáshoz, amely a következő helyen található: %windir%\system32\inetsrv. Ebben a mintában csak az UDP protokollal (a "net.udp" protokollazonosítóval) rendelkező alkalmazásokat kezeljük. Más implementációk eltérően kezelhetik ezt, ha az ilyen implementációk reagálnak az alkalmazás dinamikus konfigurációs változásaira (például egy alkalmazás le van tiltva az engedélyezettre való áttérésre).
A visszahívás ConfigManagerInitializationCompleted fogadása azt jelzi, hogy a WAS befejezte a protokoll inicializálására vonatkozó összes értesítést. A figyelőadapter jelenleg készen áll az aktiválási kérelmek feldolgozására.
Amikor egy alkalmazáshoz először érkezik új kérés, a figyelőadapter a WebhostOpenListenerChannelInstance-t a WAS-ba hívja, ami elindítja a munkafolyamatot, ha az még nincs elindítva. Ezután betölti a protokollkezelőket, és elindulhat a figyelőadapter és a virtuális alkalmazás közötti kommunikáció.
A figyelőadapter a következő módon van regisztrálva a %SystemRoot%\System32\inetsrv\ApplicationHost.config <listenerAdapters> szakaszban:
<add name="net.udp" identity="S-1-5-21-2127521184-1604012920-1887927527-387045" />
Protokollfigyelő
Az UDP protokollfigyelő egy olyan modul a protokollaktivátoron belül, amely egy UDP-végponton figyel a virtuális alkalmazás nevében. Az osztályban UdpSocketListenerimplementálva van. A végpont IPEndpoint formájában jelenik meg, amelyhez a portszámot a webhely protokolljának kötéséből vonják ki.
Vezérlőszolgáltatás
Ebben a mintában a WCF használatával kommunikálunk az aktiváló és a WAS feldolgozói folyamat között. Az aktivátorban található szolgáltatást vezérlőszolgáltatásnak nevezzük.
Protokollkezelők
A figyelőadapter hívása után WebhostOpenListenerChannelInstance, a WAS folyamatkezelő elindítja a feldolgozói folyamatot, ha az még nem indult el. Az alkalmazáskezelő a feldolgozó folyamaton belül betölti az UDP folyamatprotokoll-kezelőt (PPH) az ehhez ListenerChannelId tartozó kéréssel. PPH forgásban hívja a IAdphManager-t.
StartAppDomainProtocolListenerChannel az UDP AppDomain Protocol Handler (ADPH) elindításához.
ÜzemeltetettUDPÁtvitelKonfiguráció
Az információk a Web.configban az alábbiak szerint lesznek regisztrálva:
<serviceHostingEnvironment>
<add name="net.udp" transportConfigurationType="Microsoft.ServiceModel.Samples.Hosting.HostedUdpTransportConfiguration, UdpActivation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6fa904d2da1848d6" />
</serviceHostingEnvironment>
A minta speciális beállítása
Ez a minta csak Windows Vista, Windows Server 2008 vagy Windows 7 rendszeren hozható létre és futtatható. A minta futtatásához először be kell állítania az összes összetevőt. A minta telepítéséhez kövesse az alábbi lépéseket.
A minta beállítása
Telepítse a ASP.NET 4.0-t az alábbi paranccsal.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableKészítse el a projektet Windows Vista rendszeren. A fordítás után a következő műveleteket is végrehajtja a buildelés utáni fázisban:
Telepíti az UDP-kötést az "Alapértelmezett webhely" webhelyre.
Létrehozza a "ServiceModelSamples" virtuális alkalmazást, hogy a következő fizikai útvonalra mutasson: "%SystemDrive%\inetpub\wwwroot\servicemodelsamples".
Engedélyezi a "net.udp" protokollt is ehhez a virtuális alkalmazáshoz.
Indítsa el a felhasználói felület "WasNetActivator.exe" alkalmazását. Kattintson a Telepítés fülre , jelölje be a következő jelölőnégyzeteket, majd kattintson a Telepítés gombra a telepítéshez:
UDP figyelőadapter
UDP protokollkezelők
Kattintson a felhasználói felület "WasNetActivator.exe" alkalmazás Aktiválás lapjára. Kattintson a Start gombra a figyelőadapter elindításához. Most már készen áll a program futtatására.
Megjegyzés
Ha befejezte ezt a mintát, a Cleanup.bat fájlt kell futtatnia, hogy eltávolítsa a net.udp kötést az "Alapértelmezett webhelyről".
Minta használat
A fordítás után négy különböző bináris fájl jön létre:
Client.exe: Az ügyfélkód. Az App.config a Client.exe.config ügyfélkonfigurációs fájlba van lefordítva.
UDPActivation.dll: az összes fő UDP-implementációt tartalmazó kódtár.
Service.dll: A szolgáltatáskód. Ezt a rendszer a ServiceModelSamples virtuális alkalmazás \bin könyvtárába másolja. A szolgáltatásfájl a Service.svc, a konfigurációs fájl pedig a Web.config. A fordítás után a rendszer a következő helyre másolja őket: %SystemDrive%\Inetpub\wwwroot\ServiceModelSamples.
WasNetActivator: Az UDP-aktiváló program.
Győződjön meg arról, hogy az összes szükséges darab megfelelően van telepítve. A következő lépések bemutatják a minta futtatását:
Győződjön meg arról, hogy a következő Windows-szolgáltatások elindultak:
Windows folyamataktiválási szolgáltatás (WAS).
Internet Information Services (IIS): W3SVC.
Ezután indítsa el az aktivátort, WasNetActivator.exe. Az Aktiválás lapon az egyetlen protokoll, az UDP van kiválasztva a legördülő listában. Kattintson a Start gombra az aktiválás elindításához.
Az aktiváló elindítása után futtathatja az ügyfélkódot Client.exe parancsablakból való futtatásával. A mintakimenet a következő:
Testing Udp Activation. Start the status service. Sending UDP datagrams. Type a word that you want to say to the server: Hello, world! Sending datagram: Hello, world![0] Sending datagram: Hello, world![1] Sending datagram: Hello, world![2] Sending datagram: Hello, world![3] Sending datagram: Hello, world![4] Calling UDP duplex contract (ICalculatorContract). 0 + 0 = 0 1 + 2 = 3 2 + 4 = 6 3 + 6 = 9 4 + 8 = 12 Getting status and dump server traces: Operation 'Hello' is called: Hello, world![0] Operation 'Hello' is called: Hello, world![1] Operation 'Hello' is called: Hello, world![2] Operation 'Hello' is called: Hello, world![3] Operation 'Hello' is called: Hello, world![4] Operation 'Add' is called: 0 + 0 Operation 'Add' is called: 1 + 2 Operation 'Add' is called: 2 + 4 Operation 'Add' is called: 3 + 6 Operation 'Add' is called: 4 + 8 Press <ENTER> to complete test.