在控制器外部使用 Server.Execute 时出错

Error using Server.Execute outside of controller

我正在尝试通过外部函数 运行 Server.Execute 在控制器外部。我曾尝试传递多种类型的对象以使其正常工作,但每次我都收到一条错误消息 Error: Error executing child request for [url]

这是我的代码在控制器内部的样子:

public async Task<ActionResult> Exec(){
    var http = HttpContext; //<- doesn't work
    http = HttpContext.ApplicationInstance.Context; //<- doesn't work

    return execMethodAsync(http);
}

然后在另一个class中代码是:

public async Task execMethodAsync(HttpContext context){
   context.Server.Execute("/myurl"); // <-- Throws error
}

我已经尝试将许多对象类型传递给此方法,但仍然出现此错误。

我尝试通过 HttpContextHttpContext.CurrentHandlerControllerContext.HttpContext 甚至其他一些,但仍然出现此错误。在控制器之外 运行 Server.Execute() 似乎几乎是不可能的。有人可以帮忙在控制器外执行 Server.Execute 吗?

有几种情况可能会导致此问题,您试过了吗

HttpContext.Current.RewritePath("yourpage.aspx");