Megosztás a következőn keresztül:


Üzemeltetés Windows-szolgáltatásalkalmazásban

A Windows-szolgáltatások (korábbi nevén Windows NT-szolgáltatások) olyan folyamatmodellt biztosítanak, amely különösen alkalmas olyan alkalmazásokhoz, amelyeknek hosszú ideig futtatható végrehajtható környezetben kell élnie, és semmilyen felhasználói felületet nem jelenítenek meg. A Windows-szolgáltatásalkalmazások folyamatélettartamát a szolgáltatásvezérlő (SCM) felügyeli, amely lehetővé teszi a Windows-szolgáltatásalkalmazások elindítását, leállítását és szüneteltetésének folyamatát. Konfigurálhat windowsos szolgáltatási folyamatot úgy, hogy a számítógép indításakor automatikusan elinduljon, így megfelelő üzemeltetési környezetet biztosít a "always on" alkalmazásokhoz. A Windows-szolgáltatásalkalmazásokkal kapcsolatos további információkért lásd: Windows-szolgáltatásalkalmazások.

A régóta futó Windows Communication Foundation (WCF) szolgáltatásokat futtató alkalmazások számos jellemzővel rendelkeznek a Windows-szolgáltatásokkal. A WCF-szolgáltatások olyan hosszan futó kiszolgálói végrehajtható fájlok, amelyek nem kommunikálnak közvetlenül a felhasználóval, ezért semmilyen felhasználói felületet nem implementálnak. Így a WCF-szolgáltatások Windows-szolgáltatásalkalmazáson belüli üzemeltetése az egyik lehetőség a robusztus, hosszú ideig futó WCF-alkalmazások létrehozására.

A WCF-fejlesztőknek gyakran el kell dönteniük, hogy a WCF-alkalmazásukat egy Windows-szolgáltatásalkalmazáson belül, vagy az Internet Information Services (IIS) vagy a Windows Folyamataktiválási szolgáltatás (WAS) üzemeltetési környezetében üzemeltetik-e. Érdemes megfontolni a Windows-szolgáltatásalkalmazások használatát a következő feltételek mellett:

  • Az alkalmazás explicit aktiválást igényel. Például windowsos szolgáltatásokat kell használnia, amikor az alkalmazásnak automatikusan el kell indulnia, amikor a kiszolgáló elindul ahelyett, hogy az első bejövő üzenetre reagálva dinamikusan induljon el.

  • Az alkalmazást futtató folyamatnak a kezdés után is futnia kell. Az első lépések után a Windows-szolgáltatási folyamat továbbra is fut, kivéve, ha a kiszolgáló rendszergazdája kifejezetten leállítja a szolgáltatásvezérlőt. Az IIS-ben vagy WAS-ban üzemeltetett alkalmazások dinamikusan indíthatók el és állíthatók le a rendszererőforrások optimális kihasználása érdekében. Azokat az alkalmazásokat, amelyek kifejezetten szabályozni szeretnék az üzemeltetési folyamat élettartamát, az IIS vagy a WAS helyett Windows-szolgáltatásokat kell használniuk.

  • A WCF-szolgáltatásnak Windows Server 2003 rendszeren kell futnia, és a HTTP-n kívüli átviteleket kell használnia. Windows Server 2003 rendszeren az IIS 6.0 üzemeltetési környezet csak HTTP-kommunikációra korlátozódik. A Windows-szolgáltatásalkalmazások nem vonatkoznak erre a korlátozásra, és bármilyen átviteli WCF-támogatottat használhatnak, beleértve a net.tcp, a net.pipe és a net.msmq protokollt.

Használati útmutató

  1. Hozzon létre egy Windows-szolgáltatásalkalmazást. Windows-szolgáltatásalkalmazásokat a névtérben lévő osztályok használatával írhat felügyelt kódba System.ServiceProcess . Ennek az alkalmazásnak tartalmaznia kell egy osztályt, amely a következőtől ServiceBaseöröklődik: .

  2. Kapcsolja össze a WCF-szolgáltatások élettartamát a Windows-szolgáltatásalkalmazás élettartamával. Általában azt szeretné, hogy a Windows-szolgáltatásalkalmazásban üzemeltetett WCF-szolgáltatások aktívak legyenek az üzemeltetési szolgáltatás indításakor, ne hallgassa az üzeneteket az üzemeltetési szolgáltatás leállításakor, és állítsa le az üzemeltetési folyamatot, amikor a WCF szolgáltatás hibát tapasztal. Ez a következőképpen valósítható meg:

    • Felülbírálás OnStart(String[]) egy vagy több példány megnyitásához ServiceHost. Egyetlen Windows-szolgáltatásalkalmazás több WCF-szolgáltatást is üzemeltethet, amelyek csoportként indulnak el és állnak le.

    • Felülbírálás OnStop az ServiceHost összes futó WCF-szolgáltatás meghívásáhozClosed, amely a rendszer közben OnStart(String[])indult el.

    • Iratkozzon fel az Faulted eseményre ServiceHost , és az osztály használatával ServiceController állítsa le a Windows szolgáltatásalkalmazást hiba esetén.

    A WCF-szolgáltatásokat üzemeltető Windows-szolgáltatásalkalmazások ugyanúgy vannak üzembe helyezve és felügyelve, mint a WCF-t nem használó Windows-szolgáltatásalkalmazások.

Lásd még