Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Komunikace mezi Windows Service a WPF

Aktivity
Avatar
Majkel
Člen
Avatar
Majkel:12.8.2017 14:15

Ahoj,

potřebuji udělat WPF aplikaci, která poběží pod běžným účtem, a k ní windows službu, která poběží pod admin účtem. WPF aplikace bude volat službu, která pak provede požadované úkony.

Co řeším je způsob komunikace mezi těmito prvky. Většinou jsem narazil na zmínky o WCF. Nemám s ním moc velké zkušenosti a co vím, tak je to celkem náročné na konfiguraci.

Mám ale zkušenosti se self-hosting owin, na kterém bych si udělal web-api. To bych volal z WPF aplikace. Vše to poběží lokálně. Je takové řešení za použití Web API a HTTP správné. Nebo bych měl použít nějakou socket komunikaci? SignalR? Případně něco zcela jiného, co nabízí WCF?

Díky za případné rady :-)

Editováno 12.8.2017 14:17
 
Odpovědět
12.8.2017 14:15
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Majkel
Martin Dráb:12.8.2017 15:05

Když jsem tohle dělal s aplikací a službou psanými v C/C++, používal jsem pojmenované roury (named pipes). Jejich objekty vytvořila služba a aplikace se na ně pak připojila a příjímala/posílala data. Trik spočíval v tom, že služba musela explicitně nastavit oprávnění na těch rourách tak, aby se tam i aplikace běžící pod účtem s omezenými právy dostala. Pak to fungovalo dobře.

S WCF osobní zkušenost nemám, ale kamarád to na snad používal právě na komunikaci mezi službou a aplikací. Já jen trochu pomáhal z konfigurací, ale už si z toho nic nepamatuju. Otázka samozřejmě je, zda by to pro tebe nebyl overkill, popř. zda by to nevytvářelo závislosti, které nechceš.

Nahoru Odpovědět
12.8.2017 15:05
2 + 2 = 5 for extremely large values of 2
Avatar
zelvicek
Člen
Avatar
zelvicek:12.8.2017 21:22

WCF, WCF, WCF...
WCF je moc pěkná věcička. Dá se říct, že to je wrapper všeho možného. Pomocí konfigurace se to dá nastavit 10000 způsoby. A právě to je jeho silná stránka, když ho poznáš. Je to jako MS Office - bambilion nastavení ve kterém se každý strati, ale jakmile to pochopíš, je to geniální. Jsem si jistý, že různí vývojáři ti poradí různé způsoby komunikace. HTTP, sockety, já bych použil MSMQ. WCF dokáže wrapnout všechny. A co je na něm kouzelné je to, že si ten protokol můžeš změnit každých 5 sekund (i častěji, pokud dokážeš klientovi i serveru měnit app.config dost rychle).

Takže za mě: nadechni se, řekni si "mám na to" a najdi si na netu nějaký WCF get started.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
12.8.2017 21:22
Avatar
Majkel
Člen
Avatar
Odpovídá na zelvicek
Majkel:20.8.2017 9:47

Použil jsem WCF named pipes. Díky za tip.

 
Nahoru Odpovědět
20.8.2017 9:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.