我有一个ASP.NET项目,在构建项目时,它显示了构建suceessfull。但是当我构建部署项目时,它显示构建失败并显示错误消息
Error 5 "aspnet_compiler.exe" exited with code 1
我重新检查了我的项目,发现当我删除 <!--#include file="admin/topstyle.asp"-->
这一行时,它运行正常。如果我使用这一行,我在构建Web部署项目时遇到错误,无法创建我的dll。
topstyle.asp 是一个文件,可以呈现页面的一些常见样式,如标题图片和所有。
有谁能告诉我如何摆脱这个问题?
答案 0 :(得分:1)
您不能在同一页面中混合使用ASP.NET和ASP。 ASP.NET编译器返回错误,因为它不了解ASP代码。
至于为什么项目构建正常,那是因为include-directives是webserver的一个功能,而不是Visual Studio甚至是ASP.NET。当您在Visual Studio中构建时,将忽略include,因为编译器甚至不知道它是什么(它只是将其视为HTML注释),因此编译器只能看到ASP.NET代码和HTML ...但是当页面被动态编译时,Web服务器首先引入包含的文件然后将整个内容传递给编译器,然后编译器在遇到包含的ASP代码时会失败。
答案 1 :(得分:1)
vb.net代码中的以下更改解决了错误&#34; aspnet_compiler.exe&#34;退出代码1&#34;。解决方案已成功构建,但发布失败。
解决方案已成功构建,但PUBLISH失败并显示错误&#34; aspnet_compiler.exe&#34;退出代码1&#34;。
VB.NET代码中的以下更改解决了此错误:
以前的代码:
dtRow.Item("ParentGroupName") = Session("SecondaryGroupItems").GetSecondaryGroupItem(Session("LgItems").GetLgItem(mFnTransaction.FnTransactionDetails(1).LgId).SecondaryGroupId).Name
新代码:
Dim mmSecondaryGroupId As Integer = 0
Dim mmLgId As Integer = 0
mmLgId = mFnTransaction.FnTransactionDetails(1).LgId
mmSecondaryGroupId = DirectCast(Session("LgItems"), LgItems).GetLgItem(mmLgId).SecondaryGroupId
dtRow.Item("ParentGroupName") = DirectCast(Session("SecondaryGroupItems"), SecondaryGroupItems).GetSecondaryGroupItem(mmSecondaryGroupId).Name
答案 2 :(得分:0)
它在其他网页上成功运作吗? Topstyle.asp页面也是一个ASP.NET页面吗?如果没有它将无法工作,因为你不能混合这两种技术。
在ASP.NET中,不鼓励使用include语法。请尝试使用用户控件,或者&lt;%= Globals.MyConstantThatContainsTheStyles%&gt ;.
如果您正在使用ASP 2.0,请查看使用母版页,但这对您的应用来说可能是一个很大的改变。
答案 3 :(得分:0)
我发现编译器有时会在include伪指令中出现绝对路径问题。不知道它是否解决了这个特定问题,但只要有可能,请尝试使用<!-- include virtual="~/page.asp" -->
。