.net 4.0 从自定义IHttpHandler调用MvcHttpHandler.ExecuteRequest时出错

.net 4.0 从自定义IHttpHandler调用MvcHttpHandler.ExecuteRequest时出错,.net-4.0,asp.net-mvc-4,ihttphandler,.net 4.0,Asp.net Mvc 4,Ihttphandler,我有一个自定义IHttpHandler,它调用MVHttpHandler,如中所述实现 它在asp.net MVC2中运行良好,但在我使用IISExpress 7.5将代码迁移到MVC4后,我开始在代码行中出现InvalidOperationException: httpHandler.ProcessRequest(HttpContext.Current); 留言: 只能在之前调用“HttpContext.SetSessionStateBehavior” 引发了“HttpApplication

我有一个自定义IHttpHandler,它调用MVHttpHandler,如中所述实现

它在asp.net MVC2中运行良好,但在我使用IISExpress 7.5将代码迁移到MVC4后,我开始在代码行中出现InvalidOperationException:

httpHandler.ProcessRequest(HttpContext.Current);
留言:

只能在之前调用“HttpContext.SetSessionStateBehavior” 引发了“HttpApplication.AcquisiteRequestState”事件

ASP.NET开发服务器不会出现任何问题


有人知道这里发生了什么,以及如何解决吗?

我认为您需要在MVC更新中使用
httpContext.Server.TransferRequest


看到这个问题:

我试过那个,但不起作用。我相信这是因为我没有告诉系统使用MvcHandler来处理请求的路径;ProcessRequest(HttpContext.Current);With:HttpContext.Current.Server.TransferRequest(Request.ApplicationPath);而且效果很好!在将应用程序从MVC2升级到MVC5之后,我遇到了同样的错误。不幸的是,
Server.TransferRequest
会在某个位置生成错误,不能用作替换。还有其他选择吗?我的问题: