经典ASP中的Server.Execute()或Transfer()到Web.config中定义的aspx

时间:2015-07-31 15:32:55

标签: asp.net asp-classic web-config

从经典ASP文件到物理ASPX页面的Server.Execute()或Transfer()可以升级到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}">

*请注意,web.config中的路径定义方式没有任何问题。我只想展示一个例子,我为格式化道歉。

在test.asp中

Server.Execute("/test.aspx") 

我收到错误:

Server object error 'ASP 0228 : 80004005'
Server.Execute Error
/test.asp, line 18
The call to Server.Execute failed while loading the page.

我知道有很多方法可以解决这个问题,但我想了解为什么这样做不起作用。我个人喜欢用尽可能少的文件保持简单,所以我探索了上面探讨的内容。如果您有任何见解,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

Server.Transfer到aspx文件更有可能为您服务。

希望这是有道理的。