2010-06-21 1 views
7

Я не могу понять, почему я могу получить эту ошибку. Это происходит при вызове ajax.Что вызывает эту ошибку? Ошибка выполнения дочернего запроса для обработчика «System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper»

Любая помощь приветствуется. Благодаря!

Это полный текст ошибки:

- 6/21/2010 6:09:10 PM - System.Web.HttpException (0x80004005): Ошибка при выполнении запроса ребенка для обработчика «System. Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper. ---> System.Web.HttpUnhandledException (0x80004005): выбрано исключение типа «System.Web.HttpUnhandledException». ---> System.Web.HttpException (0x80004005): OutputStream недоступен, если используется пользовательский TextWriter. в System.Web.HttpResponse.get_OutputStream() в AjaxControlToolkit.ToolkitScriptManager.OutputCombinedScriptFile (HttpContext контекст) в C: \ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs: линии 286 в AjaxControlToolkit.ToolkitScriptManager.OnInit (EventArgs e) в C: \ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs: строка 246 в System.Web.UI.Control.InitRecursive (контроль именованияконфигурации) в System.Web.UI.Control.InitRecursive (Контроль NamingContainer) на System.Web.UI.Control.InitRecursive (Control NamingContainer) на System.Web.UI.Control.InitRecursive (Control NamingContainer) в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Логическое includeStagesAfterAsyncPoint) в System.Web.UI.Page.HandleError (Исключение е) в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, булева includeStagesAfterAsyncPoint) в System.Web.UI.Page.ProcessRequest (Boolean includeStagesBeforeAsyncPoint , Boolean includeStagesAfterAsyncPoint) в System.Web.UI.Page.ProcessRequest() в System.Web.UI.Page.ProcessRequestWithNoAssert (HttpContext контекст) в System.Web.UI.Page.ProcessRequest (HttpContext контекст) в системе .Web.Mvc.ViewPage.ProcessRequest (контекст HttpContext) в ASP.views_listen_twittertimeline_aspx.ProcessRequest (контекст HttpContext) в c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Временные файлы ASP.NET \ root \ 8f8e9134 \ ff8a3ded \ App_Web_4vjkjyte .13.cs: строка 0 в System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper. <> c__DisplayClass1.b__0() в System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper. <> c__DisplayClass4.b__3() at 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. <> c__DisplayClass14. <> 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 шаг, булева & completedSynchronously)

ответ

11

Трассировка стека содержит ответ:

OutputStream не доступен при использовании пользовательских TextWriter. в System.Web.HttpResponse.get_OutputStream() в AjaxControlToolkit.ToolkitScriptManager.OutputCombinedScriptFile (HttpContext контекст) в C: \ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs: линия 286 на AjaxControlToolkit. ToolkitScriptManager.OnInit (EventArgs е) в C: \ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs: линия 246 на System.Web.UI.Control.InitRecursive (Control NamingContainer) в системе. Web.UI.Control.InitRecursive (контроль именуемый контейнер) по адресу System.Web.UI.Control.InitRecursive (Control NamingContainer) на System.Web.UI.Control.InitRecursive (Control NamingContainer) в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Вы используете AjaxControlToolkit, который представляет собой набор элементов управления сервером. ASP.NET MVC не поддерживает серверные элементы управления. Возможно, вы захотите позвонить в Javascript API AjaxControlToolkit вместо использования элементов управления сервером, поскольку это должно дать вам поведение, которое вы хотите, с помощью MVC-совместимого способа.

+0

Вынул AjaxControlToolkit, и все, казалось, сработало. – rksprst

7

Ваш код MVC, вероятно, имеет синтаксическую ошибку.Вероятно, вы видите сообщение об ошибке в своем журнале ошибок, но это не остановит работу сайта, поскольку код представления не скомпилирован таким же образом, как и стандартный класс.

Так что проверьте свой журнал ошибок для любых сообщений об ошибках синтаксиса.

+1

Спасибо, что на самом деле заставил меня найти ошибку, я не знаю, был там. – rksprst

+1

Это был отличный ответ (возможно, лучший), потому что я не знал, что эти ошибки mvc регистрируются в событиях! –

0

Попробуйте установить CombineScripts="false" в ToolkitScriptManager Инициализация. Это не корень проблемы, но она на правильном пути.

1

Я получаю аналогичную ошибку, если я изменю свой AccountController (или HomeController), который будет получен из моего BaseController. (По умолчанию каждый контроллер выведен из «Контроллера»). У меня были общие действия, определенные в моем BaseController, который был получен из Controller.

Если я изменю свой AccountController, который будет получен из (по умолчанию) «Контроллер», все работает нормально. Не уверен, что это помогает!

0

в моем случае это был, если оператор в BeginFrom

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

    } 
    <some html> 

} 
Смежные вопросы