Diskuze: Windows Service
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Myslíš, že řešení Windows service která hostí WCF ve které je
callback a ten přes HTTP binding ovládá aplikaci, která běží na "ploše"
je dobře nebo špatně? Právě ty Pipe nedoporučovali, ale co diskuze to jinej názor. Z
obecného hlediska je u c# vlastně super, že jedna věc jde řešit X
způsoby, ale na druhou stranu začátečník má problém vůbec vybrat ten
nejlepší způsob. A není nic lepšího než tejden pracovat na aplikaci a pak
zjisti, že Ti třeba padá na věcech jako práva, firewall atd
z pohledu WCF vetsinou plati
http://assets.devx.com/…gs/16171.jpg
https://mohammedatef.files.wordpress.com/…fbinding.jpg
osobne jsme pouzivali netNamedPipeBinding pro sluzbu ktera monitorovala
ctectu karet ktera pri vlozeni karty posilala parametry do programu a po
vytazeni karty posilala zpravu o vytazeni. osobne bych sel do WCF ale psal si ze
stim mas nejake problemy. co presne psali na jinem foru ze se nema pouzivat
named pipe ?
Já jsem si ten základ toho udělal, služba běží pustím aplikaci, ta se přihlásí na odběr callbacku a když se stane něco se složkou, kterou hlídá ve WCF filewatcher, tak se mi v aplikaci napíše. Ted to budu muset hodně rozvinout. Spíše ta otázka byla, že jsem s WCF nový a není to na jednu řádku, tak abych se nevydal špatnou cestou a po tejdnu to nezjistil, že je to nepoužitelný, jinak v tom TCP a PIPE mě omezovalo, že musí být zaplé služby Net.Pipe a Net.TCP, což já mít nemůžu. V tom Pipe bylo ještě něco, ale nemůžu najít místo kde jsem to četl.
tim zaplym net.pipe asi myslis aktivaci protokolu net.pipe kdyz to hostujes v ramci iis ne ? nejsem si ted jisty ale zda se me ze pro sefhosting wcf nemusi byt zaple net.pipe
Podle návodu jednoho z mnoha návodů by právě mělo být zapnuté, proto
jsem to zavrhnul. Jinak jsem fakt už z toho vypruzelej, tak strašně dlouho se
dělám s takovým nesmyslem, který už musel bejt milionkrát řešenej. Mít
Servisu, která něco skenuje a při změně dat upozorní aktualně
přihlášeného uživatele. Ted mám problém vlastně pořád to samé ta
služba běží pořád a ted nastane situace, přihlásí se uživatel a pustí
aplikaci. Jenže ta aplikace zavolá callback, ale udělá uplně jinou
instanci, takže ty data z té původní služby jsou zase mimo.
Klidně nad tím strávím celej víkend nebo až do léta, ale prostě todle v
tom blbém WCF musí prostě jít.
Tak jsem to nakonec udělal NamedPipedServer a Client
No vlastně je to jednoduchej kod, mě stačí synchroní řešení, ale ještě dořešuji situaci, server posílá data klientovi, vypnu klienta a server to ale neví..pustím klienta on zjistí, že nastala chyba a restartuje se, ale jednu zprávu kterou by měl pustit při té chybě nepošle, ale to je strašně obecné, nejlepší by bylo někde hlídat, jestli client běží no
Maličko jsem k tomu napsal, dopisuji podrobně na mém webu.
Sekce pro pokročilé.
Už je asi pozdě odpovídat na WCF, ale aby jsi měl jen jednu instanci pro všechny klienty, stačilo nastavit:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
možná je ještě potom dobré nastavit i ConcurencyMode :
ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,ConcurrencyMode = ConcurrencyMode.Multiple)
, který ti zajistí zpracovaní v jiných vláknech.
Ahoj ano s WCF jsem hrál taky, ale tam bohužel asi i dost mojí neznalostí
byl jenom problém za problémem., Reset naslouchání namedpipeserveru jsem
pořešil, ve windows servie lze přepsat metoda OnSessionChanged a tam při
odhlašování vlastně připravím ten server na přijímání nových
požadavků, protože mi pořád trochu zlobila situace, kdy se odpojil client,
jenže server pořád čekal co bude . Jinak kdyby to někdo řešil v budoucnu, tak důležitý u
NamedPipedServer je nastavit dobře práva uvnitř té služby, mít tam třeba
Users, Authenticat User nebo co Vám příjde vhod a plus hlavně je tam v
nastavení že může CreateInstance, bez toho mi to dělalo psí kusy.
Zobrazeno 13 zpráv z 13.