c # - Sådan kalder du Windows-tjenester, der oprettes med .NET?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en grundlæggende windows service, der gør nogle konverteringer af data. Der er afkoblet GUI, som gør det muligt for brugeren at ændre nogle konfigurationer, og dette skal proprogeres til Windows Serivice-kørslen. Begge er kørende i samme boks og implementeret ved hjælp af C # .NET. Hvilken er den bedste måde at kommunikere med tjenesten andre end interprocess kommunikationsmekanismer som mutex, arrangementer mv.
Jeg vil også gerne undgå at implementere det som en webservice, fordi det ikke er en webservice.

Bedste reference


Jeg ville bruge en WCF Service til at kommunikere.


Du kan bruge netNamedPipe-binding, men det fungerer muligvis ikke på Windows 2008/Windows 7, da tjenesten kører i session 0, og al brugerkode kører i sessioner> 0, og de ville ikke kunne kommunikere.


Så jeg brugte netTcpBinding i mit eget projekt.

Andre referencer 1


Hvis processerne ikke skal flytte til forskellige maskiner, kan du bruge hukommelseskortede filer som kommunikationsmekanisme. [1]


Hvis det ikke er tilfældet, er WCF en god mulighed.

Andre referencer 2


Siden du 'beskæftiger dig med konfigurationsdata for tjenesten, ville jeg vedvare det et eller andet sted. Database, fil, registreringsdatabase mv. UI skriver oplysningerne, og tjenesten læser den, når det er hensigtsmæssigt (for eksempel hver runde).