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

时间:2015-10-19 14:19:20

标签: asp.net asp.net-mvc asp.net-mvc-3

我试图从外部函数在控制器外运行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);
}

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

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

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

我尝试传递HttpContextHttpContext.CurrentHandlerControllerContext.HttpContext甚至其他一些,但仍然会收到此错误。在控制器之外运行Server.Execute()几乎是不可能的。有人可以帮助在控制器外执行Server.Execute吗?

1 个答案:

答案 0 :(得分:0)

有一些事情可能导致这种情况,你试过吗

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