jag har alltid kunnat göra såhär:
<!--#include virtual="/connection.asp" -->
men nu hittar den inte filen connection.asp. jag har lagt över mina sidor i en ny dator men vad skall det spela för roll?
vad kan jag göra åt saken?
20 svar · 1 268 visningar · startad av daniel_ra
jag har alltid kunnat göra såhär:
<!--#include virtual="/connection.asp" -->
men nu hittar den inte filen connection.asp. jag har lagt över mina sidor i en ny dator men vad skall det spela för roll?
vad kan jag göra åt saken?
prova med file istället för virtual.
men av någon anledning minns jag att det inte fungerade att använda file typ ../../../connection.asp på webbhotellet, därför har jag virtual på alla mina sidor utom på de sidor som ligger i samma katalog som filen connection.asp.. det måste ju finnas en anledning till att det inte fungerar med virtual nu men att det gör det på min andra dator. vad kan skillnaden vara?
Vissa webhotell tillåter inte include file p.g.a säkerhetsskäl.
Ligger connection.asp rakt i rooten på servern?
på webbhotellet ligger den i rooten och include virtual fungerar fint och har alltid gjort, det är på min egen maskin som det nu helt plötsligt inte fungerar. är det någon inställning jag kan göra för att tillåta detta. Det har ju gått bra tills jag bytte burk så det måste vara någonting hos mig som jag kan ändra på så att det funkar igen.
Kolla i din IIS på din maskin hemma.
hittar inga skillnader i inställningar =(
daniel_ra skrev:
på webbhotellet ligger den i rooten och include virtual fungerar fint och har alltid gjort, det är på min egen maskin som det nu helt plötsligt inte fungerar. är det någon inställning jag kan göra för att tillåta detta. Det har ju gått bra tills jag bytte burk så det måste vara någonting hos mig som jag kan ändra på så att det funkar igen.
Åter igen; ligger connection.asp i rooten på din dator?
nej den ligger inte i rooten.
Om den nu inte ligger i roten så funkar inte detta
<!--#include virtual="/connection.asp"-->
För / hänvisar till roten, /katalog/fil.asp hänvisar till filen fil.asp i katalogen katalog i roten. Så se över var filerna ligger. :)
mitt problem är att filstrukturen alltid varit densamma och att jag alltid kunnat använda <!--#include virtual="/connection.asp" -->
såhär ser filstrukturen ut: wwwroot/mapp1/mapp2/fil1.asp
connection.asp ligger i mapp1 och jag har alltså alltid kunnat komma åt denna från fil1.asp med koden ovan. jag vill kunna göra det igen så att jag slipper ändra sökvägen i alla mina filer.
Testa med:
<!--#include file="connection.asp" -->
daniel_ra skrev:
mitt problem är att filstrukturen alltid varit densamma och att jag alltid kunnat använda <!--#include virtual="/connection.asp" -->
såhär ser filstrukturen ut: wwwroot/mapp1/mapp2/fil1.asp
connection.asp ligger i mapp1 och jag har alltså alltid kunnat komma åt denna från fil1.asp med koden ovan. jag vill kunna göra det igen så att jag slipper ändra sökvägen i alla mina filer.
Enligt min erfarenhet så måste det innebära att mapp1 var definierad som webroot i webservern. Antingen då eller så är det något form av svart magi :P
fick aldrig nåt riktigt svar på detta, jag har nu lagt connection.asp i rooten på min dator och då hittar sidorna filen med <!--#include virtual="/connection.asp" --> men då får jag fel på connectionsträngen istället som även den fungerat fint.. det är inte lätt det här =(
strConn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("mindb.mdb") & ";"
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open (strConn)
får detta fel
---------------------------------
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x12b4 Thread 0x17cc DBC 0x10dd5f4 Jet'.
---------------------------------
okay, har testat vidare.. nu visar det sig att saker är ännu skummare. Om includefilen med connection ligger i samma katalog som filen jag anropar connection.asp med så fungerar databasanropet. om jag däremot includerar connection.asp från en sida som inte ligger i samma mapp som connection.asp så fungerar inte databasanropet trots att det är samma fil som inkluderas. Detta borde ju vara totalt omöjligt och inte ha någonting med varandra att göra, eller??
Har för mig att man får utgå ifrån filen som man inkluderar i när man kör "include virtual".
Testa att skriva typ server.MapPath("/db/mindb.mdb").
jag provade det men jag har fortfarande problemet att beroende på var filerna ligger så fungerar det alternativt fungerar inte. Jag provade att skriva ut hela sökvägen till databasen och det fungerar sålänge som filerna ligger i samma katalog som connection.asp. ligger filderna däremot i en mapp längre ned i hierarkin så går det inte att använda hela sökvägen utan får felet om registry key. Hur kommer detta sig?
använder jag mappath så är det som du säger, den utgår från den mapp som filen ligger i vilket ju kan vara olika från fall till fall så det kan jag ju inte använda alls.
Har du testat "Enable parent path" i IIS?
När jag hade strul med det så gjorde jag en path sträng som angav vart man var med den filen som man inkluderade ifrån och sedan använde man den strängen i connection.asp för att den skulle hitta rätt. Testa det.