【问题标题】:Server.Execute - render .ASP from MVC controller actionServer.Execute - 从 MVC 控制器操作渲染 .ASP
【发布时间】:2014-09-09 19:51:05
【问题描述】:

我需要将 ASP 页面呈现为来自 MVC 控制器操作的字符串。我可以使用Server.Execute() 来呈现.aspx 页面,但不能呈现.asp 页面。

这是我正在使用的:

    public ActionResult Index()
    {
        Server.Execute("/default.asp");
        return new EmptyResult();
    }

返回

`No http handler was found for request type 'GET'`

有什么建议吗?我可以对 Web 请求执行类似的操作,但我宁愿避免环回请求的开销。

【问题讨论】:

  • 您使用的是什么版本的 IIS?如果 7 使用的是集成管道?
  • 是的,IIS 7。我的生产服务器在 Win2k3 上运行 IIS6。

标签: asp.net-mvc asp-classic


【解决方案1】:

上次我检查时,在 ASP.NET 3.5 或 4.0 上下文下运行并使用 ASP.NET 时,Server.Execute 不会执行 .ASP 页面,因为没有为旧版 .ASP 配置 ASP.NET httpHandler页面。

我要做的是使用 WebRequest 来执行 .ASP 页面并存储结果,然后将响应的字符串输出转储为字符串,然后在执行控制器方法时转储该字符串。这样,您甚至可以在不同的服务器上执行 .ASP 页面(Server.Execute 不适合农场!)

【讨论】:

  • 这就是我所说的“环回请求”。它可以工作,但显然会产生一些额外的开销。
【解决方案2】:

使用Server.TransferRequest() 而不是.Execute(),它应该可以工作。如果它在控制器中不起作用,请将其放在您的视图中,如下所示:

@{Server.TransferRequest("/default.asp");}

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2015-10-29
    • 2015-01-28
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多