WebService Objekt in Webseite "speichern"

10/04/2008 - 15:58 von addy | Report spam
Hallo,
kurz ein umriss um meinem aktuelles Projekt:

WebSite <--> WebService <--> Làd Plugin <--> SAP Systen

Eine Webseite soll über einen WebService auf ein SAP System zugreifen
und Daten übertragen.
Da nicht bekannt ist um welches System es sich handelt, wird der
WebService nur dazu aufgefordert das passende Plugin zum System zu
laden und die Anfrage weiterzuleiten.
Funktioniert soweit auch alles ganz schön.

Jetzt ist nur das Problem, dass ich nicht weiß wie ich
Seitenübergreifend das Objekt des Webservices speichern kann ohne bei
jedem Zugriff eine neue Instanz zu holen, da bei jedem zugriff gleich
eine Verbindung zu dem System geöffnet (jedoch nicht geschlossen)
wird.
Nach mehreren Zugriffen auf die Seite macht der Rechner einfach
schlapp..

Momentan wird das Objekt Serialisiert und in
Session["WebServiceObject"] gespeichert. Beim aufrufen einer Seite ist
im Page_Load Event eine abprüfung ob das Objekt == null ist. Wenn ja
wird ein neues geholt, ansonsten das aus der Session.

Ich habe vor 4 Wochen erst mit ASP.NET angefangen und frage mich, ob
es nicht eine sinnvollere Möglichkeit gibt, die Verbindung zum
WebService zu halten.

Um Hilfe wàre ich dankbar.

Grüße, Andreas
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
10/04/2008 - 16:13 | Warnen spam
Hallo ?

"addy" schrieb:

Jetzt ist nur das Problem, dass ich nicht weiß wie ich
Seitenübergreifend das Objekt des Webservices speichern kann ohne bei
jedem Zugriff eine neue Instanz zu holen,



Das kommt drauf an, für wen das Objekt zur Verfügung stehen soll. Wenn
es für _alle_ Requests dasselbe Objekt sein soll, könnte man es in eine
Shared / static Property in einer der verwendeten Klassen packen.
Allerdings musst Du dann die Zugriffe synchronisieren, sonst kommen die
sich ins Gehege.

da bei jedem zugriff gleich eine Verbindung zu dem System geöffnet
(jedoch nicht geschlossen) wird.



Da hat dann aber wohl jemand arg geschlampt.

Momentan wird das Objekt Serialisiert und in
Session["WebServiceObject"] gespeichert. Beim aufrufen einer Seite ist
im Page_Load Event eine abprüfung ob das Objekt == null ist. Wenn ja
wird ein neues geholt, ansonsten das aus der Session.



Ist möglich, wenn das Objekt für diesen Benutzer, bzw. diese Browser-
sitzung zur Verfügung stehen soll. Allerdings hast Du unter Umstànden
dann ein paar tausend dieser Objekte rumliegen, die keiner mehr braucht.
(Die Session wird nicht beim schließen des Browser beendet, sondern
erst nach einer gewissen Leerlaufzeit, per Default 20 min nach der
letzten Aktivitàt innerhalb dieser Sitzung)

Ich habe vor 4 Wochen erst mit ASP.NET angefangen und frage mich, ob
es nicht eine sinnvollere Möglichkeit gibt, die Verbindung zum
WebService zu halten.



Die Verbindung wird eh nicht gehalten (zumindest nicht, wenn der Zugriff
über HTTP erfolgt).

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen