Fortsättning på [Webservice - sessioner på NÅGOT sätt?] Jag tror windowsapplikationen tolkas som en helt ny session och det verkar väl rimligt om du tänker dig att 20 pers ansluter mot din webbservice. Alla lär få olika sessionsvariabler. <b>Jag tror windowsapplikationen tolkas som en helt ny session och det verkar väl rimligt om du tänker dig att 20 pers ansluter mot din webbservice. Alla lär få olika sessionsvariabler.</b> För att session ska fungera för en applikation så måste den har stöd för cookies.Sessioner i Webservices
Hur får man fart på detta? Jag har testat att göra en webservice med följande metod:
<WebMethod(EnableSession:=True)> Public Function test2() As String
Return Session.SessionID
End Function
Det fungerar jättebra när man "surfar till webservicen", man få samma svar varje anrop. När jag däremot anropar från en VB.NET applikation får jag olika svar varje gång. Är det någon inställning i applikationen som måste till?
Dim EnApp As New MinApp.Datakom
MsgBox(EnApp.test2)
MsgBox(EnApp.test2)
Detta ger alltså 2 olika sessionid.
/JohanSv: Sessioner i Webservices
Jag tror du måste skicka med något till webbservicen för att säga att du är samma som någon ursprunglig session och därmed är likadan som förut. Det kan vara en cookie, ett userid eller liknande.
Hur du smartast löser detta kan jag tyvärr inte svara på för närvarande. Sv: Sessioner i Webservices
Jo, men om samma metod anropas två gånger direkt efter varandra så borde de tillhöra samma session (se exemplet).
<b>Jag tror du måste skicka med något till webbservicen för att säga att du är samma som någon ursprunglig session och därmed är likadan som förut.</b>
Givetvis kan jag göra detta manuellt, men det vore ju smidigt om det kunde skötas automatiskt, det är ju det sessionsobjektet är till för.
<b>Det kan vara en cookie, ett userid eller liknande.</b>
Det ska skötas av en cookie, men det verkar som att det är den som inte skickas med, och det är själva problemet...
/JohanSv: Sessioner i Webservices
För att en Web service ska kunna behålla en session för en klient, så måste klienten spara cookien. För att få session att fungera för din applikation så måste du använda dig av CookieContainer och se till att lägga till den i din proxy klass innan du gör ditt web service anrop.
/Fredrik Normén NSQUARED2
http://www.nsquared2.net