---
title: "Server.CreateObject Failed - Aktiva besökare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/114986-server-createobject-failed-aktiva-besökare"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "calson"
published: "2004-11-03T09:31:42.000Z"
updated: "2004-11-03T13:55:41.000Z"
replies: 19
views: 407
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/114986-server-createobject-failed-aktiva-besökare"
---

# Server.CreateObject Failed - Aktiva besökare

## #1 — calson, 2004-11-03T09:31Z

Server object error 'ASP 0177 : 800401f3' 

Server.CreateObject Failed 

root/global.asa, line 16 

```
<SCRIPT Language="VBScript" Runat="Server">

Sub Application_OnStart
Application("online") = 0
End Sub

Sub Session_OnStart

Dim oFe, oFso, oCtf
Dim iMaxOnline

Application.Lock
Application("online") = Application("online") + 1
Application.Unlock

Set oFe = Server.CreateObject("MSWC.Tools") [b]<- rad 16[/b]
If oFe.FileExists("maxonline.txt") Then
iMaxOnline = Server.Execute("maxonline.txt")
Else
iMaxOnline = 0
End If
Set oFe=nothing
```

Betyder det här att mitt webhotell inte stödjer MSWC.Tools?

Permalänk: https://www.webforum.nu/p/114986

## #2 — ConnyFox, 2004-11-03T09:41Z

Skulle chansa på att ditt webhotell inte har det installerat ja, har ofta vart så i liknande fall för mig att jag inte haft t.ex jmail eller nått installerat.

Permalänk: https://www.webforum.nu/p/1475063

## #3 — calson, 2004-11-03T09:56Z

kan man använda sig utav en databas istället för en txt fil i det här fallet med global.asa?

```
Set oFe = Server.CreateObject("MSWC.Tools")
If oFe.FileExists("maxonline.txt") Then
iMaxOnline = Server.Execute("maxonline.txt")
Else
iMaxOnline = 0
End If
Set oFe=nothing

If Application("online") > iMaxOnline Then
Set oFso = Server.CreateObject("Scripting.FileSystemObject")
Set oCtf = oFso.CreateTextFile(Server.Mappath("maxonline.txt"), True)
oCtf.WriteLine(Application("online") & ". Rekordet sattes " & date)
oCtf.Close
Set oCtf=nothing
Set oFso=nothing
iMaxOnline = Application("online")
End If
```

Permalänk: https://www.webforum.nu/p/1475075

## #4 — calson, 2004-11-03T10:00Z

eller kan man göra lika dant som man gör i en .asp fil?

Permalänk: https://www.webforum.nu/p/1475079

## #5 — @nders, 2004-11-03T10:01Z

Ja, man kan använda sig av databas och/eller textfil.

Permalänk: https://www.webforum.nu/p/1475080

## #6 — calson, 2004-11-03T10:16Z

ok då får jag pilla lite på det.
Man gör precis som man gör i en .asp fil eller?

Jag har inte använt mig av global.asa förens idag så jag är lite grön på den fronten

Tack

Permalänk: https://www.webforum.nu/p/1475091

## #7 — @nders, 2004-11-03T10:17Z

Det är vissa objekt / värden du inte kan använda i global.asa, men annars kan du använda ASP i filen.

Trial and error, så lär man sig massor. =)

Permalänk: https://www.webforum.nu/p/1475093

## #8 — calson, 2004-11-03T11:25Z

Då har jag fastnat, som väntat :)
Jag får detta felmedelande, det står inte vad som är fel bara att det är fel

error '80020009' 

root/global.asa, line 25 

```
<SCRIPT Language="VBScript" Runat="Server">

Sub Application_OnStart
Application("online") = 0
End Sub

Sub Session_OnStart

Dim oFe, oFso, oCtf
Dim objConr, objRs
Dim strSql
Dim intMax

Application.Lock
Application("online") = Application("online") + 1
Application.Unlock

Set objConr = Server.CreateObject("ADODB.Connection")
objConr.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=; DATABASE= USER=; PASSWORD=; OPTION=3;"

    strSql = "Select * from tblAktiva"
    set objRs = objConr.execute(strSql)

    if objRs("intMax") <> 0 then ' [b]rad 25[/b]
	intMax = objRs("intMax")
    else
	intMax = 0
    end if

objRs.close
Set objRs = nothing

    if Application("online") > intMax then
	objConr.execute("Update tblAktiva Set intMax=" &Application("online"))
    end if

objConr.close
set objConr = nothing

Application.Lock

if Application("online") = 1 then
  Application("stats") = "Just nu är det bara du inne på sidan"
else
  Application("stats") = "Just nu är det " & Application("online") &" st inne på sidan"
end if

Application.Unlock

End Sub

Sub Session_OnEnd
Application.Lock
Application("online") = Application("online") - 1
Application.Unlock
End Sub

</SCRIPT>
```

Någon som orkar kolla igenom min kod och säga om jag gjort något galet

Tack på förhand

Permalänk: https://www.webforum.nu/p/1475121

## #9 — @nders, 2004-11-03T11:26Z

Du måste kolla att inte recordsetet är tomt, dvs EOF, innan du försöker använda värden ifrån det.

Antagligen är ditt recordset tomt, och det är därför du får felet.

mvh

Permalänk: https://www.webforum.nu/p/1475124

## #10 — calson, 2004-11-03T11:30Z

Äsch. Jag har ju glömt att skapa en post i databasen :)

En till fråga: Jag testade runt lite nu och märkte att det tar en fasligt lång tid för global.asa att förstå att en eller fler personer inte längre är på sidan.

Jag skapade 8 fönster som alla var på sidan samtidigt, då sivade skriptet att det var 8 pers på sidan men sedan när jag stängde ner alla förnster förutom ett stod det fortfarande 8 istället för 1?

kan man snabba på processen så global.asa kollar om folk försvunnit oftare?

Permalänk: https://www.webforum.nu/p/1475126

## #11 — calson, 2004-11-03T11:32Z

Nu funkar databas delen, tack Anders :)

Permalänk: https://www.webforum.nu/p/1475129

## #12 — @nders, 2004-11-03T11:33Z

Webbapplikationen har inte en aning om när folk stänger sina fönster, utan session.onend körs när sessionen avslutas, antingen genom att timeout inträffar (default är den inställd på 20 minuter) eller att man kallar på Session.Abandon.

mvh

Permalänk: https://www.webforum.nu/p/1475130

## #13 — Jesper T, 2004-11-03T11:44Z

1\. Ta genast bort konfidentiell information ur dina inlägg.
(lösenord, osv. i databaskopplingen)
2\. sätt en kortare tid på dina sessioner.

Permalänk: https://www.webforum.nu/p/1475140

## #14 — calson, 2004-11-03T12:05Z

Tack Jesper

Permalänk: https://www.webforum.nu/p/1475155

## #15 — calson, 2004-11-03T12:17Z

Säkert väldigt enkelt men jag kan bara inte komma på hur jag kortar ner tiden för mina sessioner?

Permalänk: https://www.webforum.nu/p/1475164

## #16 — calson, 2004-11-03T12:28Z

Session.Timeout = 1

Där satt denm hoppas jag :)

Permalänk: https://www.webforum.nu/p/1475172

## #17 — @nders, 2004-11-03T12:34Z

Jepp, det är så man gör. Hoppas bara att du inte använder sessionsvariabler för att hålla koll på att man är inloggad eller så bara.

mvh

Permalänk: https://www.webforum.nu/p/1475178

## #18 — calson, 2004-11-03T12:39Z

hehe
använder bara sessioner till aktiva besökare :)

Permalänk: https://www.webforum.nu/p/1475180

## #19 — calson, 2004-11-03T12:43Z

Tack för all hjälp

Permalänk: https://www.webforum.nu/p/1475182

## #20 — calson, 2004-11-03T13:55Z

Nu har jag lagt till session.TimeOut men jag har fortfarande samma fel: Det tar en evighet innan de som inte är inne på sidan försvinner som aktiv besökare.

Jag har satt session.TimeOut = 1 men det tar långt över en minut att få bort den aktiva besökaren. Jag testade att öppna 10 fönster så det vart 10 aktiva användare. Sedan stängde jag ner samtliga förnster förutom 1 som jag lät avvakta.. efter 15 minuter va det fortfarande 10 aktiva besökare?

Finns det något mer effektivt sätt jag kan lösa detta problem eller får jag leva med att det är på detta viset?

```
<SCRIPT Language="VBScript" Runat="Server">

Sub Application_OnStart
Application("online") = 0
End Sub

Sub Session_OnStart
Session.Timeout = 1
```

Permalänk: https://www.webforum.nu/p/1475222

---

Tråden på webben: https://www.webforum.nu/amne/asp/114986-server-createobject-failed-aktiva-besökare
