Toon posts:

[asp] Session_OnEnd event werkt niet!

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hello folks!

Ik heb TWEE problemen

Probleem EEN:
Ik heb in ASP in de global.asa file het volgende gedaan:

<script language="vbscript" id="prodid" runat="server">

Sub Session_OnStart
Session.Timeout = 1 (om te testen)
End Sub

</script>

<SCRIPT LANGUAGE="VBSCRIPT" RUNAT=Server>
Sub Session_OnEnd
Session.Abandon
Response.Redirect "http://uitlogscherm
End Sub
</SCRIPT>

Wat het moet doen is dat als een Session afloopt, een scherm moet verschijnen dat verteld dat een user uit gelogt is. Maar het toont het scherm niet...ipdv toont het een wit scherm, (dus warschijnlijk wordt de Session_On end niet eens bereikt)

Als ik via een uitlog button uitlogt dan verschijnt de verwachte scherm wel.

Vraag EEN:
Wie weet hoe ik ervoor kan zorgen dat als ik vergeet uit te loggen dat het systeem automatisch uitlogt en redirect naar een bepaalde scherm (vb de uitlogscherm).


Probleem TWEE:
Ik heb een functie geschreven die een stock level bij houdt (ie hoeveel voorraad er nog is). Als de voorraad te laag loopt wordt een een signaal gegenereert.

Nu will ik dat deze fucntie constant op de achter grond van de applicatie draait om de voorraad constant in de gaten te houden.

Vraag TWEE wie weet ik dat kan oplossen?

Alvast bedankt,

D'Original

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Uhm als nog scherm getoont wordt dan wordt er denk ik weer nieuwe sessie aangemaakt :)

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Vraag EEN:
Wie weet hoe ik ervoor kan zorgen dat als ik vergeet uit te loggen dat het systeem automatisch uitlogt en redirect naar een bepaalde scherm (vb de uitlogscherm).
UHm dat gaat erg lastig worden. Session timen nl uit na ( default 20 minuten ) een tijdje. Als een gebruiker bijvoorbeeld na 3 minuten zijn explorer wegklikt blijft de sessie nog 17 minuten actief. Het is dus via Sessions niet te zeggen of de gebruiker actually nog kijkt of het scherm nog open heeft.

Ik geloof dat je dat kan afvangen met IsClientConnected ( volgens mij een server proportie ), maar dan is het dus eigenlijk al te laat.
Probleem TWEE:
Ik heb een functie geschreven die een stock level bij houdt (ie hoeveel voorraad er nog is). Als de voorraad te laag loopt wordt een een signaal gegenereert.

Nu will ik dat deze fucntie constant op de achter grond van de applicatie draait om de voorraad constant in de gaten te houden.
Dat gaat dus ook mooi niet met ASP werken. Het enige wat je kan doen is of

1) Bij voorraad mutaties gelijk de voorraad controleren
2) Een ASP pagina klussen die met de scheduler eens in de zoveel tijd wordt aangeroepen
3) Een mooi server side service geval klussen (VB, C++ wat je wil ) die dit checkt een in de zoveel tijd.

Constant lijkt me niet relaxt omdat het dan al je resources opeet, maar eens in de 5 minuten oid ?

Wat ik thuis iig doe is een EXE klussen in VB en deze dan laden via de scheduler ( ja iets ranziger, maar wel lekker simpel ) .

Owja btw ( ff zeuren :P ) , je hoeft niet je naam onderaan je post te zetten. Lees de faq anders eens :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Owja zij -opmerking. BIj Session.Onend heeft session.abandon niet zoveel zin, omdat dit toch al is gebeurt ( anders zou session.onend niet worden aangeroepen ) .

Abandon is ervoor bedoelt om ergens anders in de code de onend aan te roepen :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Heb even een SU aangemaakt voor topic title. Graag in topictitle beginnen met [techiek] Dat houdt het forum nog enigszins leesbaar

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Op maandag 04 maart 2002 09:41 schreef Goodielover het volgende:
Heb even een SU aangemaakt voor topic title. Graag in topictitle beginnen met [techiek] Dat houdt het forum nog enigszins leesbaar
[Techniek] :? , doe maar [ASP] :P

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13-09 12:14

Crazy D

I think we should take a look.

Even overgetiept (ja kan niet copy-pasten van pc1 naar pc2 :P) uit MSDN:
The Session_OnEnd event occurs when a session is abandoned or times out. Of the server built-in objects, only the Application, Server, and Session objects are available.
Response.Redirect _kan_ dus niet eens... en t zal me dan ook niks verbazen als je in je event log wat meldingen hebt staan daarover... Als je de juiste VBscript versie hebt draaien (ik dacht versie 5 of hoger) zou je Server.Transfer of Server.Execute kunnen proberen.

Voor vraag 2: een apart programma zou een oplossing zijn. Als je mssql server gebruikt, zou je misschien een job kunnen aanmaken (sql server agent) en een mailtje laten sturen oid als de voorraad te laag is.

Exact expert nodig?


  • Mart!
  • Registratie: Februari 2000
  • Laatst online: 11-09 08:19
Zoals Crazy_D al zegt, in een Session_OnEnd event kun je geen response methode aanroepen. Een methode die regelmatig ik gebuik is in elke pagina controleren of de sessie niet is verlopen (d.m.v. een include natuurlijk). Is deze verlopen, dan wordt de gebruiker geredirect naar een ander pagina.

Verwijderd

Wat jij wilt is het zg. server push. De server wil de client iets vertellen. Je zou dat op kunnen lossen met een actief component (java/activex), maar zeker jou probleem twee schreeuwt om een IM (instant messaging: icq, messenger e.d.) oplossing >:)

Maar je kunt natuurlijk ook een emailtje sturen... :Z
Pagina: 1