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

时间:2010-06-21 17:24:03

标签: c# asp.net asp.net-mvc asp.net-mvc-2

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

感谢任何帮助。谢谢!

这是完整的错误文字:

  

- 6/21/2010 6:09:10 PM - System.Web.HttpException(0x80004005):执行处理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper'的子请求时出错。 ---&GT; System.Web.HttpUnhandledException(0x80004005):抛出了类型'System.Web.HttpUnhandledException'的异常。 ---&GT; 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行      在C:\ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs中的AjaxControlToolkit.ToolkitScriptManager.OnInit(EventArgs e):第246行      在System.Web.UI.Control.InitRecursive(Control namingContainer)      在System.Web.UI.Control.InitRecursive(Control namingContainer)      在System.Web.UI.Control.InitRecursive(Control namingContainer)      在System.Web.UI.Control.InitRecursive(Control namingContainer)      在System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)      在System.Web.UI.Page.HandleError(例外e)      在System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)      在System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)      在System.Web.UI.Page.ProcessRequest()      在System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)      在System.Web.UI.Page.ProcessRequest(HttpContext上下文)      在System.Web.Mvc.ViewPage.ProcessRequest(HttpContext context)      at ASP.views_listen_twittertimeline_aspx.ProcessRequest(HttpContext context)在c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 8f8e9134 \ ff8a3ded \ App_Web_4vjkjyte.13.cs:第0行      在System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper。&lt;&gt; c__DisplayClass1.b__0()      在System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper。&lt;&gt; c__DisplayClass4.b__3()      在System.Web.Mvc.HttpHandlerUtil.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.<InvokeActionResultWithFilters>b__11() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func 1续)      在System.Web.Mvc.ControllerActionInvoker。&lt;&gt; c__DisplayClass14。&lt;&gt; c__DisplayClass16.b__13()      在System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(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.<BeginProcessRequest>b__4() at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8 1.b__7(IAsyncResult _)      在System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()      在System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)      在System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult结果)      在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()      在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)

5 个答案:

答案 0 :(得分:11)

堆栈跟踪包含答案:

  

当a时,OutputStream不可用   使用自定义TextWriter。在   System.Web.HttpResponse.get_OutputStream()   在   AjaxControlToolkit.ToolkitScriptManager.OutputCombinedScriptFile(HttpContext的   上下文)   C:\ AjaxBuild \阿贾克斯\服务器\ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:行   286在   AjaxControlToolkit.ToolkitScriptManager.OnInit(EventArgs的   e)in   C:\ AjaxBuild \阿贾克斯\服务器\ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:行   246在   System.Web.UI.Control.InitRecursive(控制   namingContainer)at   System.Web.UI.Control.InitRecursive(控制   namingContainer)at   System.Web.UI.Control.InitRecursive(控制   namingContainer)at   System.Web.UI.Control.InitRecursive(控制   namingContainer)at   System.Web.UI.Page.ProcessRequestMain(布尔   includeStagesBeforeAsyncPoint,Boolean   includeStagesAfterAsyncPoint)

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

答案 1 :(得分:7)

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

就我而言,它是BeginFrom中的if运算符

@using (Html.BeginForm()) {
   <some html>
   @if(condition)
   {

   }
   <some html>

}