1

I maintain an Classic ASP intranet site. I've developed a new page in ASP.NET that has a link to it from the old site. I would like to use the INCLUDE from the intranet which puts a header with menus on each page. I get a compile error when I run the new page in the debugger. The INCLUDE file contains nested INCLUDE files. The error says it can't find the nested includes. It's looking for them in the C:\xxxxxx when the actual physical path is on the d:\ drive.

Apparently it's resolving the INCLUDE VIRTUAL for the top level include, because it's looking for the nested includes.

Why does it resolve the first include, finding it on the D:\ drive, but is looking for the nested includes on the C:\ drive?

here's the code for the top level include

< !--#include virtual="/includes/page2header.asp"-->

here's the code for the nested includes

< !-- #INCLUDE virtual="/inc/menustyles.txt" -->

< !-- #INCLUDE virtual="/inc/Config.asp" -->

The site is running on IIS 7.5.

The site is located on the server on the default website in a virtual directory in the path D:\inetpub\wwwroot

The compiler is looking for the nested includes in this path with this error, Could not find a part of the path 'C:\inetpub\wwwroot\inc\menustyles.txt'

2 Answers 2

1

The problem I was having here is I was running the debugger on my development machine, and it's virtual directory IS on the C:\ drive for this site, and the first level virtual file did exist in the path where the compiler was looking for it, and the nested files did not exist. The problem was solved when I copied the nested files into place on the development machine.

However, that raised a new problem. The nested files contain server side script, Classic ASP VBScript, and it just won't run in my ASP.NET page. This problem brings this effort to a dead end, unless someone can recommend how to solve this new problem.

Thanks, Bren

Sign up to request clarification or add additional context in comments.

Comments

1

Include files don't work in the same way in ASP.NET as they do in classic ASP. When you use the Include directive, it results in the file content being rendered as plain text in the ASP.NET page. You will have to take an ASP.NET route to solve your problem. Typically, User Controls are used to render snippets of reusable HTML.

See my article on this topic for more information: http://www.mikesdotnetting.com/Article/144/Classic-ASP-Include-Files-in-ASP.NET

2 Comments

Hmmm, I have an include file, fetched via <!-- #Include virtual="filename.inc" --> and inside that filename.inc are lines that are interpreted and executed, i.e. not just copied as plain text. For example this works inside the include file ... <% ShopCartLink(); %> This calls the method .. protected void ShopCartLink() { } ... in the base page.
Forgot to add, that is in ASP.Net Framework 4.8

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.