Cum să plasați serviciul wcf într-un serviciu gestionat de Windows

Această secțiune descrie pașii de bază pentru crearea unui serviciu Windows Communication Foundation (WCF) găzduit pe un serviciu Windows. Scenariul este implementat utilizând caracteristica de implementare din serviciul Windows gestionat și este un serviciu WCF de lungă durată găzduit în afara IIS într-un mediu securizat care nu este activat de mesaje. În schimb, durata de viață a serviciului este controlată de sistemul de operare. Această opțiune de plasare este disponibilă în toate versiunile de Windows.







Serviciile Windows pot fi controlate utilizând Microsoft.ManagementConsole.SnapIn din Microsoft Management Console (MMC) și le puteți configura să pornească automat când sistemul se încarcă. Opțiunea de găzduire constă în înregistrarea unui domeniu de aplicație în care serviciul WCF este găzduit ca un serviciu Windows gestionat, astfel încât durata de viață a serviciului este controlată de Service Manager pentru serviciile Windows.

Crearea unui serviciu și furnizarea unui cod de plasare

Creați un nou proiect de aplicație consola Visual Studio numit Service.

Schimbați numele fișierului Program.cs la Service.cs.

Schimbați spațiul de nume la Microsoft.ServiceModel.Samples.

Adăugați referințe la următoarele ansambluri.

Adăugați următoarele instrucțiuni utilizând fișierul Service.cs.

Definiți contractul de servicii ICalculator. așa cum se arată în codul următor.

Implementați contractul de servicii în clasa numită CalculatorService. așa cum se arată în codul următor.

Creați o nouă clasă numită CalculatorWindowsService. derivate din clasa ServiceBase. Adăugați o variabilă locală numită serviceHost. pentru a crea o referință la o instanță a ServiceHost. Definiți metoda principală. care solicită ServiceBase.Run (noul CalculatorWindowsService).







Înlocuiți metoda OnStart (String []). crearea și deschiderea unei noi instanțe a ServiceHost. așa cum se arată în codul următor.

Depășiți metoda OnStop. închidere ServiceHost. așa cum se arată în codul următor.

Creați o nouă clasă numită ProjectInstaller. derivate din Instalator și marcate cu atributul RunInstallerAttribute. setați la true. Acest lucru vă permite să instalați serviciul Windows prin programul Installutil.exe.

Scoateți clasa Service. create la crearea proiectului.

Adăugați fișierul de configurare a aplicației în proiect. Înlocuiți conținutul acestui fișier cu următorul cod de configurare XML.

Faceți clic dreapta pe fișierul App.config din fereastra Solution Explorer și selectați Properties. Sub Copiere la ieșire, selectați Copiere mai nouă.

În acest exemplu, punctele finale sunt specificate explicit în fișierul de configurare. Dacă nu se adaugă niciun punct final la serviciu, runtime-ul adaugă în mod implicit obiectivele finale. În acest exemplu, deoarece parametrul ServiceMetadataBehavior este setat la adevărat în serviciu. Acesta include, de asemenea, publicarea de metadate. Pentru mai multe informații despre obiectivele finale, legăturile și comportamentele implicite, consultați Configurația simplificată și Configurația simplificată a serviciilor WCF.

Instalarea și pornirea serviciului

Creați soluția pentru a crea fișierul executabil Service.exe.

În linia de comandă, tastați services.msc. pentru a accesa Managerul de servicii. Serviciul Windows ar trebui să apară în lista de servicii numită WCFWindowsServiceSample. Serviciul WCF poate răspunde numai clienților dacă serviciul Windows se execută. Pentru a porni serviciul, faceți clic dreapta pe serviciul din Service Manager și selectați "Run" sau tastați net start WCFWindowsServiceSample din linia de comandă.

Pentru a efectua modificări ale serviciului, trebuie mai întâi să îl opriți și să îl ștergeți. Pentru a opri serviciul, faceți clic dreapta pe serviciul din Service Manager și selectați Stop, sau tastați type net stop WCFWindowsServiceSample din linia de comandă. Rețineți că, dacă opriți serviciul Windows și apoi porniți clientul, atunci când clientul încearcă să acceseze serviciul, EndpointNotFoundException va fi aruncat. Pentru a elimina serviciul Windows, la promptul de comandă, tastați installutil / u bin \ service.exe.

Codul utilizat în această secțiune este descris în cele ce urmează.







Articole similare

Trimiteți-le prietenilor: