导致此错误的原因是什么? 执行处理程序’System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper’的子请求时出错

我无法弄清楚为什么我会收到这个错误。 它发生在ajax调用上。

任何帮助表示赞赏。 谢谢!

这是完整的错误文本:

– 6/21/2010 6:09:10 PM – System.Web.HttpException(0x80004005):执行处理程序’System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper’的子请求时出错。 —> System.Web.HttpUnhandledException(0x80004005):抛出了类型’System.Web.HttpUnhandledException’的exception。 —> System.Web.HttpException(0x80004005):使用自定义TextWriter时,OutputStream不可用。 在System.Web.HttpResponse.get_OutputStream()中的AjaxControlToolkit.ToolkitScriptManager.OutputCombinedScriptFile(HttpContext context)中的C:\ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:第286行,位于AjaxControlToolkit.ToolkitScriptManager.OnInit(EventArgs e)在C:\ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:系统中System.Web.UI.Control.InitRecursive(Control namingContainer)的System.Web.UI.Control.InitRecursive(Control namingContainer)中的第246行System.Web.UI上System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)的System.Web.UI.Control.InitRecursive(Control namingContainer)中的.Web.UI.Control.InitRecursive(Control namingContainer)。 System.Web.UI.Page.ProcessRequest的System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)的Page.HandleError(例外e)(布尔includeStagesBef 在System.Web上的System.Web.UI.Page.ProcessRequest(HttpContext上下文)的System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext上下文)处的System.Web.UI.Page.ProcessRequest()处的oreAsyncPoint,布尔值includeStagesAfterAsyncPoint。位于c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 8f8e9134 \ ff8a3ded \ App_Web_4vjkjyte.13中的ASP.views_listen_twittertimeline_aspx.ProcessRequest(HttpContext上下文)中的Mvc.ViewPage.ProcessRequest(HttpContext上下文) .cs:System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper中的第0行。 c__DisplayClass1.b__0()位于System.Web.Mvc.HttpHandlerUtil的System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper。 c__DisplayClass4.b__3()。 1 func) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(Action action) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.ProcessRequest(HttpContext context) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page) at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass14.b__11() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func ServerExecuteHttpHandlerWrapper.Wrap [TResult](Func 1 func) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(Action action) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.ProcessRequest(HttpContext context) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page) at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass14.b__11() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func 1 func) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(Action action) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.ProcessRequest(HttpContext context) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page) at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass14.b__11() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func 1 func) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(Action action) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.ProcessRequest(HttpContext context) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page) at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass14.b__11() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func在System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters的System.Web.Mvc.ControllerActionInvoker。 c__DisplayClass14。 c__DisplayClass16.b__13()中的System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter 1 func) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(Action action) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.ProcessRequest(HttpContext context) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page) at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass14.b__11() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func 1 continuation) (ControllerContext controllerContext,IList 1 filters, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) at System.Web.Mvc.Controller.ExecuteCore() at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) at System.Web.Mvc.MvcHandler.c__DisplayClass8.b__4() at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass1.b__0() at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass8 1 filters, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) at System.Web.Mvc.Controller.ExecuteCore() at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) at System.Web.Mvc.MvcHandler.c__DisplayClass8.b__4() at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass1.b__0() at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass8 System.Web上System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)的System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()上的1 filters, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) at System.Web.Mvc.Controller.ExecuteCore() at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) at System.Web.Mvc.MvcHandler.c__DisplayClass8.b__4() at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass1.b__0() at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass8 1.b__7(IAsyncResult _)。 System.Web.HttpApplication.ExecuteStep上的System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中的Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult结果)(IExecutionStep step,Boolean&completedSynchronously)

堆栈跟踪包含答案:

使用自定义TextWriter时,OutputStream不可用。 在System.Web.HttpResponse.get_OutputStream()中的AjaxControlToolkit.ToolkitScriptManager.OutputCombinedScriptFile(HttpContext context)中的C:\ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:第286行,位于AjaxControlToolkit.ToolkitScriptManager.OnInit(EventArgs e)在C:\ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:系统中System.Web.UI.Control.InitRecursive(Control namingContainer)的System.Web.UI.Control.InitRecursive(Control namingContainer)中的第246行System.Web.UI.Page.ProcessRequestMain上的System.Web.UI.Control.InitRecursive(Control namingContainer)中的.Web.UI.Control.InitRecursive(Control namingContainer)(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)

您正在使用AjaxControlToolkit,它是服务器控件的集合。 ASP.NET MVC不支持服务器控件。 您可能希望调用AjaxControlToolkit的Javascript API而不是使用服务器控件,因为这应该以符合MVC的方式为您提供所需的行为。

您的MVC视图代码可能包含语法错误。 您可能在错误日志中看到错误消息,但它不会阻止站点运行,因为View代码的编译方式与标准类不同。

因此,请检查错误日志中的任何语法错误消息。

如果我将AccountController(或HomeController)更改为从我的BaseController派生,我会收到类似的错误。 (默认情况下,每个控制器都派生自“Controller”)。 我在BaseController中定义了从Controller派生的generics动作。

如果我将我的AccountController更改为从(默认)“Controller”派生,一切正常。 不确定它是否有帮助!

尝试在ToolkitScriptManager初始化中设置CombineScripts="false" 。 这不是问题的根源,而是正确的方式。

在我的例子中,它是BeginFrom中的if运算符

 @using (Html.BeginForm()) {  @if(condition) { }  }