PDA

View Full Version : Applicaion i global.asa?


bigsky
2003-02-16, 06:41
I global.asa's OnStart räknar jag antalet aktiva besökare enligt koden nedan. Men nu har jag två hemsidor på samma server och det skapar problem. Om någon surfar in på sida 1 uppdateras ju även räknaren för sida 2, även om ingen surfat in på den. Hur ska jag lösa detta?

Sub Session_OnStart()
Application.Lock
Session.Timeout = 20
Application("NumUsers") = CInt(Application("NumUsers")) + 1
Application.Unlock
End Sub

crisse6
2003-02-16, 06:50
Bara en fraga, varfor har du CInt med i din application? Du kan ju inte ha 1,4356 anvandare?

bigsky
2003-02-16, 06:51
Ja, det har du rätt i... bra fråga.

crisse6
2003-02-16, 06:59
Bara papekade ;) annars vet jag tyvarr inte det dar med global.asa, har aldrig varit den dar global.asa-killen ;)

PatrikB
2003-02-16, 09:59
på samma server eller på samma site?

På samma server kan du ha hur många siter som helst utan att global.asa "krånglar". Men, har du 2 siter under samma "site i IIS" så blir det problem.

Har du siterna går mot samma domän-namn eller har du konfat hostheadern så att den "redirectar" till rätt katalog vid olika domän-namn?

Den senare så kan du lösa det med Request.ServerVariables("HTTP_HOST"):


strHost = Request.ServerVariables("HTTP_HOST")

Select Case LCase(strHost)

Case "www.minsite.com"
Application("Site1Users") = Application("Site1Users") + 1

Case "www.minandrasite.com"
Application("Site2Users") = Application("Site2Users") + 1
End Select


otestat, men ngt liknande skulle kunna funka.
Annars kanske du får köra Request.ServerVariables("SCRIPT_NAME") och sedan kolla om de olika siternas "root" finns med (ie: /site1/ eller om /site2/ finns i SCRIPT_NAME)

cya,
PatrikB

bigsky
2003-02-16, 16:23
Den ena sidan är en site kopplad till mitt roten på kontot hos webbhotellet, den andra är en site som är redirectad till samma konto, men till en undermapp under roten. Sidorna ligger under samma site i IIS med andra ord.
Skulle kunna använda din kod, men inte med HTTP_HOST då det vid redirecten blir samma rot site iaf. Får nog använda SCRIPT_NAME istället. Kan man få ett exempel där vi kollar om ett visst antal av de första bokstäverna är si och så.

Tex. om det fem första bokstäverna i stringen "strName" är "/sida1" osv.

bigsky
2003-02-16, 18:59
Löste det med:

strName = Request.ServerVariables("SCRIPT_NAME")
Select Case LCase(Left(strName,5))
Case "/bsai"
Application("NumUsers") = Application("NumUsers") + 1
Case "/80ss"
Application("NumUsers2") = Application("NumUsers2") + 1
End Select