IIS6 500 Server Error Include File Not Found when running an asp script.

J

JR

Hi, I'm migrating my website to an IIS 6.0 server and all
the asp pages work fine except for the ones that reference
include files, even though I have "Enable parent paths"
enabled in the App/Options tab.

The include files are being called as
<!-- #include virtual="../includes/file.inc" -->
<!-- #include virtual="../includes/script.asp" -->

If I remove the parent path call it works just fine. I
don't understand why it's doing this if I clearly
have "Enable parent paths" turned on in the Application
Options tab. Is there someother place where it needs to be
turned on. The error sent back to the browser is a 500
internal server error but looking at the event viewer it
shows that it cannot find the include file.

Thanks.
 
J

joker

The option of "virtual" in an include file sets it to the root of the
web. Basically what you are saying is after going to the root of the
web go to it's parent folder. So just get rid of the "../" as that
shouldn't be there with a "virtual" include.
 
J

Jeff Cochran

Hi, I'm migrating my website to an IIS 6.0 server and all
the asp pages work fine except for the ones that reference
include files, even though I have "Enable parent paths"
enabled in the App/Options tab.

The include files are being called as
<!-- #include virtual="../includes/file.inc" -->
<!-- #include virtual="../includes/script.asp" -->

If I remove the parent path call it works just fine. I
don't understand why it's doing this if I clearly
have "Enable parent paths" turned on in the Application
Options tab. Is there someother place where it needs to be
turned on. The error sent back to the browser is a 500
internal server error but looking at the event viewer it
shows that it cannot find the include file.

Where is the include? And where is the include virtual looking?

Look at your code, look at what you posted and you have your answer.
An include virtual starts the path at the root of the web site. So if
your physical structure is:

c:\
c:\Inetpub
c:\Inetpub\Website
c:\Inetpub\Website\Includes
c:\Inetpub\Website\Includes\file.inc

Then this:

<!-- #include virtual="includes/file.inc" -->

Gives you this:

c:\Inetpub\Website\Includes\file.inc

And this (what you have):

<!-- #include virtual="../includes/file.inc" -->

Gives you this:

c:\Inetpub\Includes\file.inc

IIS6 won't let you traverse back a directory above the web site root,
and simply drops the request. IIS5 was looser in interpretations of
these types of violations.

Jeff

Jeff
 
G

Guest

It's going one directory up because it's one directory
deep.

My structure is as follows.

wwwroot/
wwwroot/include
wwwroot/carpages

Thus the pages inside carpages need to cd .. to go one
directory up into the include directory. This code worked
perfectly fine on IIS5
 
G

Guest

It's going one directory up because it's one directory
deep.

My structure is as follows.

wwwroot/
wwwroot/includes
wwwroot/carpages

Thus the pages inside carpages need to cd .. to go one
directory up into the include directory. This code worked
perfectly fine on IIS5
 
G

Guest

You're right it doesn't matter if it's one directory deep
it bases it off the root (I wonder why it worked in IIS5).

Thanks.
 
G

Guest

You're right it doesn't matter if it's one directory deep
it bases it off the root (I wonder why it worked in IIS5).

Thanks.
 
J

joker

Let me try explaining it again the use of virtual sends you to the root
of the web the default being wwwroot. Then you tell it yo go to "../"
which is the parent of wwwroot & the default is Inetpub. So by setting
it to virtual="../includes/*" you are basically saying go to the
includes folder in the Inetpub folder. Since it does not exist you get
the error.
 
G

Guest

You're right it doesn't matter if it's one directory deep
it bases it off the root (I wonder why it worked in IIS5).

Thanks.
 
J

Jeff Dillon

Because you didn't have one of the subdir's set up as it's own virtual
directory.

Jeff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,763
Messages
2,569,562
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top