Interaktion mit Webservice aus Anwendung

31/12/2009 - 15:24 von Martin Föllmer | Report spam
Hallo,

ich habe eine Anwendung, welche zur Laufzeit mehrere Forms mit
mehreren Komponenten geöffnet hat. Innerhalb der Forms sollen
Meldungen von den Komponenten an einen Webservice im Hintergrund
übertragen werden. Es können von unterschiedlichen Komponenten
innerhalb einer Form gleichzeitig mehrere Meldungen zur gleichen Zeit
abgesetzt werden.

Mein Problem, wie kann ich das am besten lösen? Es kann auch
passieren, dass der Webservice auch mal nicht erreichbar ist (WLAN
Unterbrechung) - dann sollten die Meldungen zwischengespeichert werden
und bei der nàchsten Möglichkeit (wieder online) wieder abgeschickt
werden.

Der Webservice selber schreibt die Daten nur in die MSSqlDatenbank als
Statistik.

Es wàre toll, wenn ihr mir hier helfen könnt. Ich weiß nicht, wie ich
an die Lösung herangehen soll.

Hier mal der Webservice, welcher dann eine Klasse zum Schreiben in die
DB aufruft:
[WebMethod]
public void WriteLogs(string sname, DateTime dt, string ereignis,
string container, string message)
{
addstatisticmessagesql anpsql = new addstatisticmessagesql
();
anpsql.SchreibeMessageToDB(sname, dt, ereignis, container,
message);
}

So rufe ich dynamisch die Komponenten über einen Ticker auf ( werden
auch dynamisch wieder geschlossen auch mit Webservice-Aufruf):

private void LoadK1()
{
CompK1 k1 = new CompK1();
...
Controls.Add(k1);
==> Hier soll der Webservice Aufruf erfolgen ==>
}

Ich wünsche Euch noch einen Guten Rutsch ins Neue Jahr

Gruss

Martin
 

Lesen sie die antworten

#1 Frank Dzaebel
31/12/2009 - 22:04 | Warnen spam
Hallo Martin,

Mein Problem, wie kann ich das am besten lösen? Es kann auch
passieren, dass der Webservice auch mal nicht erreichbar ist (WLAN
Unterbrechung) - dann sollten die Meldungen zwischengespeichert
werden
und bei der nàchsten Möglichkeit (wieder online) wieder abgeschickt
werden.
Der Webservice selber schreibt die Daten nur in die MSSqlDatenbank
als
Statistik.



Mal ganz allgemein dazu ...
wenn der WebService temporàr nicht aktiv ist, oder nicht
erreichbar, kann er auch keine Daten zwischenspeichern.
In *dem* Fall muss dann der Client entweder
zwischenspeichern, oder dies eben öfter versuchen und
zum Beispiel (im asynchronen Szenario) ein Completed
abwarten.
Allgemein würde man in solchen Fàllen zumindest asynchron
senden ... was mich gerade stark an die REST basierten
asynchronen ADO.NET DataServices speziell für
(aber nicht nur) Silverlight erinnert.

[ADO.NET Data Services (Silverlight)]
http://msdn.microsoft.com/de-de/lib...95%29.aspx

[Data Services: Erstellen datenzentrischer Webanwendungen mit
Silverlight 2]
http://msdn.microsoft.com/de-de/mag...94279.aspx

Ansonsten findest Du sicher auch hier Vorschlàge und
best practices:

[Microsoft Application Architecture Guide, 2nd Edition]
http://msdn.microsoft.com/en-us/lib...73617.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen