找不到请求类型的http处理程序' GET'

时间:2014-09-09 04:11:05

标签: c# asp.net asp.net-mvc asp-classic asp.net-mvc-5

在我的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会为尝试迁移的人提供此类功能,我当然希望如此。

2 个答案:

答案 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”