Asp.net 将经典ASP中的Server.Execute()或Transfer()转换为Web.config中定义的aspx

Asp.net 将经典ASP中的Server.Execute()或Transfer()转换为Web.config中定义的aspx,asp.net,asp-classic,web-config,Asp.net,Asp Classic,Web Config,从经典ASP文件将Server.Execute()或Transfer()转换为物理ASPX页面可升级到IIS 例如: 在test.asp中 Server.Execute("/test.aspx") 但是,如果在Web.Config中定义了aspx路径以触发dll中的处理程序,则Server.Execute()和Transfer()在经典ASP文件中不起作用 例如: 在web.config中 <add name="test_*" verb="*" path="test.aspx" type

从经典ASP文件将Server.Execute()或Transfer()转换为物理ASPX页面可升级到IIS

例如: 在test.asp中

Server.Execute("/test.aspx")
但是,如果在Web.Config中定义了aspx路径以触发dll中的处理程序,则Server.Execute()和Transfer()在经典ASP文件中不起作用

例如: 在web.config中

<add name="test_*" verb="*" path="test.aspx" type="testhttphandler, {fully qualified dll name}">
我得到一个错误:

Server object error 'ASP 0228 : 80004005'
Server.Execute Error
/test.asp, line 18
The call to Server.Execute failed while loading the page.
我知道有很多方法可以解决这个问题,但我想知道为什么这不起作用。我个人喜欢用最少的文件数使事情尽可能简单,所以我探索了我上面探索的内容。如果你有任何见解,请告诉我

谢谢大家!

ASP Classic(ASP.dll)和ASP.Net(aspnet_wp.exe)使用不同的进程和服务器。执行尝试使用ASP Classic解释器。。。犯错误解释ASP.Net,它不适合这样做。Execute尝试使用调用它的相同进程“执行”脚本:asp.dll

传输到aspx文件更有可能为您服务


希望这是有意义的

克里斯?这有意义吗?我也用Server.Transfer()做了同样的尝试,得到了同样的结果,只有当aspx页面是物理页面而不是web.config中定义的页面时,这才有效。谢谢你解释它是如何工作的!我猜这意味着Server.Transfer()仍在经典asp解释器下执行。否:Server.Transfer将原始请求传递到指定的URL,由与该文件类型关联的驱动程序处理。。。它应该可以正常工作到服务器。转移到ASPX页面。
Server object error 'ASP 0228 : 80004005'
Server.Execute Error
/test.asp, line 18
The call to Server.Execute failed while loading the page.