Avatar billede sublimegirl Nybegynder
12. august 2003 - 10:51 Der er 72 kommentarer og
1 løsning

Underlig opførsel

Jeg har store problemer med at få mine ASP sider til at køre på min IIS.

Dette script har altid fungeret fint, men pludselig får jeg en fejl på det:

<!-- #include file="../adovbs.inc" -->
<%

dim db
dim strConn

Set Connect = Server.CreateObject("ADODB.Connection")
strConn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../db.mdb")
Set db = Server.CreateObject("ADODB.Connection")
db.open strConn
%>

fejlen opstår på linje db.open strConn og det er en beskrives således:

Fejltype:
Provider (0x80004005)
Uspecificeret fejl
/fjordvejs/admin/db.asp, line 10


Jeg HAR geninstalleret IIS'en, og kørt en windows update. Hvorfor virker min IIS ikke mere?
Avatar billede -thomas- Nybegynder
12. august 2003 - 10:53 #1
Har du prøvet med en anden database? Har været ude for at en korrupt access database-fil gav samme fejl.
Avatar billede sublimegirl Nybegynder
12. august 2003 - 10:59 #2
Kan der ikke være andre grunde? Databasen er ret kompliceret (for mig), det vil tage lang tid at lave den på ny...
Avatar billede sublimegirl Nybegynder
12. august 2003 - 11:06 #3
Der kommer denne fejlm-prompt, når jeg åbner min database manuelt:

Microsoft Jet-databasemotoren kan ikke finde inputtabellen eller forespørgslen "costomers". Kontroller, at den findes, og at navnet er stavet korrekt.

Sagen er den, at jeg på et tidspunkt har kommet til at slette noget fra databasen. Hvordan får jeg forespørgslen slettet, så jeg ikke får denne fejlmedd.?
Avatar billede ellebaek Nybegynder
12. august 2003 - 11:07 #4
Prøv denne streng til databasen i stedet...


strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../../db.mdb")

Altså:
<!-- #include file="../adovbs.inc" -->
<%

dim db
dim strConn

Set Connect = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../../db.mdb")
Set db = Server.CreateObject("ADODB.Connection")
db.open strConn
%>
Avatar billede sublimegirl Nybegynder
12. august 2003 - 11:09 #5
Dokumentet har altid fungeret. I et helt år har jeg ikke haft problemer med at åbne min database med dette dokument. Hvorfor er det pludselig ikke godt nok?
Avatar billede -thomas- Nybegynder
12. august 2003 - 11:10 #6
Hej igen,

Du behøver jo ikke lave en database magen til - du kan bare oprette forbindelse til en tom database og se om du får samme fejl.

Jeg er sikker på det er databasen, den er gal med...
Avatar billede -thomas- Nybegynder
12. august 2003 - 11:12 #7
Der findes en del værktøjer, som kan reparere en access-database - har dog aldrig prøvet dem selv. Husk backup først!!

http://download.com.com/3120-20-0.html?qt=repair+access&tg=dl-2001
Avatar billede sublimegirl Nybegynder
12. august 2003 - 11:12 #8
Måske skulle jeg prøve at få forespørgslen til "costumers" slettet, siden "costumers" ikke findes. Ved du hvordan jeg kan slette sådan en start-forespørgsel?
Avatar billede -thomas- Nybegynder
12. august 2003 - 11:14 #9
Bruger du i øvrigt Connect til noget? Ellers kan du nøjes med nedenstående for at forbinde til databasen:

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../db.mdb")
Avatar billede -thomas- Nybegynder
12. august 2003 - 11:15 #10
skal selvfølgelig hedde db, som i di script:

Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../db.mdb")
Avatar billede -thomas- Nybegynder
12. august 2003 - 11:16 #11
Jeg tror du skal prøve mit første forslag, at prøve med en tom database, så du kan lokalisere fejlen først.
Avatar billede ellebaek Nybegynder
12. august 2003 - 11:18 #12
-thomas- det du sagde til sidst er ligemeget, det gør da ingen forskel om man siger db.open(strengen) eller db.open strConn

sublimegirl -> prøv lige det jeg skrev...!
Avatar billede -thomas- Nybegynder
12. august 2003 - 11:20 #13
ellebaek> det ved jeg godt :) jeg fjernede også bare Set Connect = Server.CreateObject("ADODB.Connection") som ikke blev brugt. Det andet gjorde jeg bare af ren vane...
Avatar billede sublimegirl Nybegynder
12. august 2003 - 11:21 #14
ellebaek > det virker med dit script, men hvorfor?
Avatar billede ellebaek Nybegynder
12. august 2003 - 11:35 #15
det har noget at gøre med de forskellige typer forbindelser og hvad databasen indeholder af funktioner. Hvis det er en clean database så er det nok med den forbindelse med er der flere forskellige funktioner kan de havde konsekvenser mener jeg....
Avatar billede sublimegirl Nybegynder
12. august 2003 - 11:45 #16
mener du clean = tom database eller hvad?
Avatar billede ellebaek Nybegynder
12. august 2003 - 12:01 #17
nej, en database der ikke indeholder forespørgsler eller nogle ting der kan påvirke funktionaliteten...

Det er bare 2 forskellige drivere der fortolker på hver deres måde...!
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:05 #18
Angående min IIS, og "underlig opførsel" så har jeg her endnu et problem, igen med at åbne databasen:

"Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal."

Dokumentet har altid fungeret fint, men pludselig fungerer det ikke. Sådan åbner jeg databasen:

<%
dim db
dim strConn

Set Connect = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../db.mdb")

Set db = Server.CreateObject("ADODB.Connection")
db.open strConn


Query = "SELECT * FROM news ORDER BY Oprettet desc"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open Query, strConn, 1, 2
do until rs.EOF

Hvad er der nu i vejen med det?
Avatar billede -thomas- Nybegynder
12. august 2003 - 12:09 #19
Du prøver nok at hente et felt i databasen som ikke eksisterer.
Avatar billede -thomas- Nybegynder
12. august 2003 - 12:09 #20
og en gang til, hvad bruger du denne linie til:

Set Connect = Server.CreateObject("ADODB.Connection")
Avatar billede -thomas- Nybegynder
12. august 2003 - 12:11 #21
samme kode, men en del kortere:

dim db, strConn

Set db = Server.CreateObject("ADODB.Connection")
db.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../db.mdb")

Query = "SELECT * FROM news ORDER BY Oprettet desc"
Set rs = db.Execute(Query)

do until rs.EOF
Avatar billede -thomas- Nybegynder
12. august 2003 - 12:14 #22
hvilken linie giver fejlen?
Prøv med Do While Not rs.EOF istedet, men det burde ikke gøre nogen forskel.
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:17 #23
det er linjen:
rs.Open Query, strConn, 1, 2

der giver fejlen.

Nedenstående trækker jeg ind fra en include-fil i toppen af mit dokument, og det bruger jeg på en masse andre sider hvor der ikke er problemer, derfor er jeg ikke meget for at rette i det.

dim db
dim strConn

Set Connect = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../db.mdb")

Set db = Server.CreateObject("ADODB.Connection")
db.open strConn
Avatar billede -thomas- Nybegynder
12. august 2003 - 12:20 #24
Så er det nok fordi feltet "Oprettet" i tabellen "news" ikke eksisterer.
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:34 #25
jo det gør :)
Avatar billede lester_dk Nybegynder
12. august 2003 - 12:37 #26
Du kan maile mig db'en på kmo @ mentor-it.dk
så skal jeg kigge på den.
Avatar billede -thomas- Nybegynder
12. august 2003 - 12:41 #27
Prøv at fjerne "ORDER BY Oprettet desc" og se om det gør en forskel.
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:42 #28
lester_dk > har netop sendt den til dig.
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:44 #29
Siden har tidligere fungeret fint... det er sq da træls at det pludselig ikke virker. Jeg tror stadig det har noget med enten databasen eller min PC at gøre.
Avatar billede lester_dk Nybegynder
12. august 2003 - 12:45 #30
Lad mig gætte på at du har lavet en Windows Update efter installation af IIS...? Hvor den har givet dig den nyeste udgave af MDAC.....
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:49 #31
Ja, skulle jeg have gjort det i den modsatte rækkefølge?
Avatar billede lester_dk Nybegynder
12. august 2003 - 12:50 #32
Du skal lige højreklikke "denne computer"
Vælge fanen avanceret--> miljøvariabler
Se om du har defineret TMP = c:/temp og TEMP = c:/TEMP

Hvilket OS bruger du...
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:53 #33
De to ting TMP og TEMP er defineret, jeg bruger Windows 2000 pro.
Avatar billede lester_dk Nybegynder
12. august 2003 - 12:54 #34
Jeg har sendt dig en mail. Fik ikke DB'en i din mail nemlig..
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:56 #35
definitionerne hedder bare sådan:
C:\Documents and Settings\%USERPROFILE%\Lokale indstillinger\Temp
Avatar billede lester_dk Nybegynder
12. august 2003 - 12:57 #36
Det burde være ok. Det er nemlig en ændring for MDAC at de kræver de to defineret. Må lige kigge i din DB.
Avatar billede sublimegirl Nybegynder
12. august 2003 - 12:59 #37
lester_dk > har lige sendt den igen med et andet efternavn
Avatar billede lester_dk Nybegynder
12. august 2003 - 13:07 #38
Har fået den. Det lader til at den er gal med formularen customers. Der mangles også et felt "orderitems" i dine forespørgsler.
Hvad skal du bruge formularene til, er det ikke meningen at du/de skal opdatere databasen via et admin modul i ASP?
Avatar billede lester_dk Nybegynder
12. august 2003 - 13:09 #39
Prøv evt. at lave en kopi af din DB. Fjerne den omtalte formular, og så teste dit asp. Husk nu at gemme orig. fil
Avatar billede sublimegirl Nybegynder
12. august 2003 - 13:11 #40
Yes, det er det der er meningen. formularen costumers har jeg slettet, men databasen bliver ved med at efterspørge den når den åbnes. Efterspørgslen skal slettes. "Orderitems" skal jeg heller ikke bruge til noget...
Avatar billede sublimegirl Nybegynder
12. august 2003 - 13:26 #41
Hvordan kan jeg slette den efterspørgsel efter costumers som dukker op, når jeg åbner databasen?
Avatar billede lester_dk Nybegynder
12. august 2003 - 13:45 #42
Det er også det der driller her. Kan ikke se at du skulle have nogle referencer til disse ting. Kigger på den når jeg får fri.
Avatar billede sublimegirl Nybegynder
12. august 2003 - 14:27 #43
okay, det lyder godt!
Avatar billede lester_dk Nybegynder
12. august 2003 - 17:52 #44
Case Solved.

Åbn databasen i Access.. Gå i funktioner --> start..

Øverst højre vælge du "ingen" der hvor der står customers.
Avatar billede sublimegirl Nybegynder
13. august 2003 - 08:50 #45
Tak, checker det lige engang.
Avatar billede sublimegirl Nybegynder
13. august 2003 - 08:58 #46
ja, nu åbner databasen uden promtp... er dog igen stødt på problemer med min åbning af databasen, efter jeg har installeret IIS og kørt en win-update.

Jeg kan ikke helt lokalisere problemet, men der er kommet fejl på rigtigt mange af mine asp sider lige efter jeg har installeret IIS'en på ny.

- leder fortsat...
Avatar billede lester_dk Nybegynder
13. august 2003 - 09:10 #47
Som sagt tror jeg det er pga. din MDAC 2.6 update som Windowsupdate selv kommer med. Har selv valgt den fra indtil jeg ved hvad den laver. Sidder med en webserver med alt for mange domæner på. Og det ville være dræber at opdatere uden at kende konsekvenserne.

Fejl og løsninger angående MDAC
http://support.microsoft.com/default.aspx?scid=kb;en-us;306518

De nyeste MDAC og JETDB filer. Måske er de blevet corrupt på din PC. Geninstallering af dem kunne måske hjælpe.
http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28001860
Avatar billede sublimegirl Nybegynder
13. august 2003 - 09:14 #48
Men hvordan kan jeg så være nogenlunde sikker på, at det jeg laver på min lokale IIS så fungerer når det kommer på webhotel? - hvis der findes flere forskellige filer, som ændrer i fortolkningen af mit ASP?
Avatar billede sublimegirl Nybegynder
13. august 2003 - 09:21 #49
Ej, jeg tror jeg opgiver. Fandens også, at jeg kørte den windows update!
Avatar billede lester_dk Nybegynder
13. august 2003 - 09:32 #50
tjaa.. det gælder jo nok om at finde den connectionstreng der bare virker.

http://www.connectionstrings.com

Ikke alle updates er lige gode... dog er den mod RPC buffer overflow en god idé. Så får man ikke w32.Blaster.Worm :-)
Avatar billede sublimegirl Nybegynder
13. august 2003 - 14:28 #51
Kunne man eventuelt ikke bare slette sin IIS, og installere den igen uden at køre en windows update efterfølgende. Ville det hjælpe noget?
Avatar billede ellebaek Nybegynder
13. august 2003 - 14:30 #52
det er da et forsøg værd. Men jeg vil foreslå dig først at køre en komnprimering af databasen. Altså: kan ikke huske hvor den sidder, men den hedder komprimer og reparer database... Den kan rette eventuelle fejl som kan have indflydelse på dine scripts...
Avatar billede ellebaek Nybegynder
13. august 2003 - 14:32 #53
funktioner -> databasefunktioner -> komprimer og reparer database....
Avatar billede sublimegirl Nybegynder
13. august 2003 - 14:49 #54
Jeg har netop kørt en "komprimer og reparer database..." Det hjalp tilsyneladende ikke meget, nu får jeg en fejl der lyder:

Microsoft JET Database Engine (0x80004005)
Microsoft Jet-databasemotoren kan ikke åbne filen "c:\inetpub\wwwroot\db.mdb". Den er allerede åbnet med udelt adgang af en anden bruger, eller du skal have tilladelse til at vise dataene.
Avatar billede ellebaek Nybegynder
13. august 2003 - 14:50 #55
har du lukket databasen igen...?
Avatar billede sublimegirl Nybegynder
13. august 2003 - 14:52 #56
ja
Avatar billede ellebaek Nybegynder
13. august 2003 - 14:55 #57
hmm...

Du er velkommen til at sende databasen samt din asp fil til mig, så kan jeg se på det inden du går igang med en større sletning af programmet på min computer...

ellebaek@post6.tele.dk
Avatar billede lester_dk Nybegynder
13. august 2003 - 14:57 #58
Som tidligere er den fejl beskrevet i dette dokument.

http://support.microsoft.com/default.aspx?scid=kb;en-us;306518
Avatar billede sublimegirl Nybegynder
13. august 2003 - 15:04 #59
Jamen det drejer sig om ca halvdelen af mine sider, som pludselig giver masser af fejl, ud af den blå luft (dvs. efter jeg har kørt en windows update og installeret min IIS på ny).
Avatar billede ellebaek Nybegynder
13. august 2003 - 15:13 #60
ok...

Men prøv evt. bare at sende databasen til mig...!
Avatar billede sublimegirl Nybegynder
13. august 2003 - 15:21 #61
yes, 2 sekunder.
Avatar billede ellebaek Nybegynder
13. august 2003 - 23:03 #62
Jeg har sendt databasen retur til dig nu...!
Avatar billede sublimegirl Nybegynder
14. august 2003 - 08:16 #63
ellebaek > tak! men... lortet vil stadig ikke køre. Synes du det er en go idé at afinstallere og installere IIS'en en gang?
Avatar billede sublimegirl Nybegynder
14. august 2003 - 08:21 #64
På denne side: http://support.microsoft.com/default.aspx?scid=kb;EN-US;174943 beskrives mit problem, men løsningen ser lidt kryptisk ud, hvad betyder dette i daglig tale:

If the page is meant to be accessed anonymously, give the IUSR_<machinename> account full control to the ASP page, and the folder and files where the database is located. Additionally, if the path to the database is being referenced using UNC (\\Server\Share), ensure that the Share Permissions allow the IUSR_<machinename> account full access. This step applies even if the share is on the local Web server.

If the page has been secured such that the IUSR_<machinename> can't access the file or database, then ensure that the user's account that is being authenticated has full control to the appropriate folders and files.

At a minimum, the account being used needs Create, Destroy, Read, Write to work with the .ldb file. Specific permission can be applied to the database to limit access.
Avatar billede sublimegirl Nybegynder
14. august 2003 - 08:57 #65
hov, nu fungerer det. Jeg gik ind i rettighederno for db.mdb og satte hak i "tillad, at tilladelser, der kan arves fra overordnede, kan overføres til dette objekt"

Tilsyneladende var det det der var galt, nu vil siderne vises...
Avatar billede sublimegirl Nybegynder
14. august 2003 - 09:03 #66
Nej, der er stadig få der ikke vil. Det er vidst databaseforbindelserne igen... tester lige igennem.
Avatar billede sublimegirl Nybegynder
14. august 2003 - 09:30 #67
Nu får jeg at vide at min database er skrivebeskyttet, selvom den ikke er det:

Fejltype:
Microsoft JET Database Engine (0x80040E09)
Databasen er skrivebeskyttet og kan ikke opdateres.
/admin/arkiver.asp, line 11


scriptet:
<%
Query = "SELECT * FROM news WHERE ID=" & request.querystring("ID")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open Query, strConn, 1, 2

rs.Update
rs("arkiv") = Request.QueryString("arkiv") <----------linje 11
rs.Update

Response.Redirect "nyheder.asp"

%>
Avatar billede ellebaek Nybegynder
14. august 2003 - 10:44 #68
det er fordi der på din server skal gives skriverettigheder til forskellige brugere for at de kan få lov at opdatere i databasen...

i XP:
1.  Åbn denne computer - Klik på menupunktet Funktioner - Mappeindstillinger - Klik på fanen Vis - Fjern flueben i "Brug Enkel Fildelign" så skulle du gerne få adgang til fanen sikkerhed.


2.  Åbn mappen C:\Inetpub\wwwroot (eller den mappe du vil give skrive rettighed) højreklik på din mappe med databasen - Vælg egenskaber - Klik på fanen sikkerhed - giv her IUSR_xxxxx skriverettigheder.

i andre windows...
http://activedeveloper.dk/aspdigital/kapitel2/updateable_query.asp
Avatar billede sublimegirl Nybegynder
15. august 2003 - 09:52 #69
Hmm... jeg lukker.

Der er flere af siderne der fungerer siden jeg har fået tildelt rettigheder til databasen, og sat hak i "tillad, at tilladelser, der kan arves fra overordnede, kan overføres til dette objekt".

Stadig få sider fungerer ikke, men det kan godt være mindre scriptfejl, som gør det. Tak for hjælpen!

Dem der mener de har fortjænt lidt points, kan lige nå at lægge et svar :)
Avatar billede ellebaek Nybegynder
15. august 2003 - 13:46 #70
svar..!
Avatar billede sublimegirl Nybegynder
15. august 2003 - 14:34 #71
Tak for tålmodigheden :)
Avatar billede lester_dk Nybegynder
15. august 2003 - 23:02 #72
Der er lidt mere du kan tænke over.

Især når der bruges Localhost kan du ofte løbe i problemet "Operation must use an updateable query." Men det virker fint på en rigtig IIS/webhotel

Desuden kan det ofte hjælpe at du på mappen/filen vælge:
Inherit feltet fra og siger kopier
Sætter write til.

Har du uploaded og testet det igennem.... eller er det kun localhost?
Avatar billede sublimegirl Nybegynder
18. august 2003 - 14:26 #73
Det er kun local host indtil videre, jeg har før været udsat for at det ikke virkede lokalt, men fint nok, når det kom på webhotel. Men det ville nu være rart, hvis det fungerede ordentligt lokal, så jeg 100% ved hvad der fungerer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester