在ASP.NET页面中使用Classic ASP INCLUDE VIRTUAL

时间:2014-03-20 14:46:01

标签: asp.net asp-classic include iis-7.5 virtual

我维护一个经典的ASP内部网站点。我在ASP.NET中开发了一个新页面,其中包含旧网站的链接。我想使用来自内部网的INCLUDE,它在每个页面上放置一个带菜单的标题。我在调试器中运行新页面时出现编译错误。 INCLUDE文件包含嵌套的INCLUDE文件。错误说它无法找到嵌套包含。当实际物理路径在d:\驱动器上时,它正在C:\ xxxxxx中查找它们。

显然它正在解决顶级包含的INCLUDE VIRTUAL,因为它正在寻找嵌套的包含。

为什么它会解析第一个include,在D:\驱动器上找到它,但是在C:\驱动器上寻找嵌套包含?

这里是顶级代码

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

这是嵌套包含的代码

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

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

该网站在IIS 7.5上运行。

该站点位于路径中虚拟目录中默认网站上的服务器上 d:\的Inetpub \ wwwroot的

编译器正在此错误中查找此路径中的嵌套包含, 找不到路径'C:\ inetpub \ wwwroot \ inc \ menustyles.txt'的一部分

2 个答案:

答案 0 :(得分:1)

包含文件在ASP.NET中的工作方式与在传统ASP中的工作方式不同。使用Include指令时,会导致文件内容在ASP.NET页面中呈现为纯文本。您将不得不采用ASP.NET路由来解决您的问题。通常,用户控件用于呈现可重用HTML的片段。

有关详细信息,请参阅有关此主题的文章:http://www.mikesdotnetting.com/Article/144/Classic-ASP-Include-Files-in-ASP.NET

答案 1 :(得分:0)

我在这里遇到的问题是我在我的开发机器上运行调试器,它的虚拟目录是在该站点的C:\驱动器上,并且第一级虚拟文件确实存在于编译器所在的路径中寻找它,并且嵌套文件不存在。当我将嵌套文件复制到开发机器上的位置时,问题就解决了。

然而,这引发了一个新问题。嵌套文件包含服务器端脚本,经典ASP VBScript,它不会在我的ASP.NET页面中运行。除非有人可以推荐如何解决这个新问题,否则这个问题会把这种努力推向死胡同。

谢谢,Bren