在我的Asp.Net MVC5控制器中我试图运行以下代码来执行经典的asp脚本:
public ActionResult Index()
{
Server.Execute("~/classic/test.asp");
return new EmptyResult();
}
但是得到上述错误消息。我尝试将/classic/
文件夹更改为自己的应用程序(池)和普通文件夹,但同样的错误。我还在IIS中检查了.net站点的HTTP处理程序映射,.asp
是一个公认的处理程序,因此,它肯定在那里。也许有办法做一个URL Rewrite方法,让你在其中执行任何脚本?似乎没有为遗留的.ASP页面配置ASP.NET httpHandler,但是可以更改它?
有没有人知道如何通过控制器运行经典的asp脚本,而不使用WebRequest
?可以使用WebRequest
,但它的开销也比预期的要高。
您会认为Microsoft会为尝试迁移的人提供此类功能,我当然希望如此。
答案 0 :(得分:2)
在View中使用Server.TransferRequest()
而不是控制器。像这样:
查看:
@{Server.TransferRequest("~/classic/test.asp");}
它将呈现您期望的经典ASP页面。
答案 1 :(得分:0)
我解决了错误消息 “使用System.Web.HttpResponse中的另一个函数找不到请求类型'GET' 的http处理程序并更改了web.config文件。
示例:
Response.WriteFile("~/include/head.shtml");
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
要使用Server.Execute("~/include/head.shtml")
我应该将IIS上的应用程序池更改为
“Asp.Net v4.0 Classic”