错误执行处理程序的子请求的原因是什么?

时间:2011-02-01 11:35:16

标签: asp.net-mvc

我无法重现此错误,因为当我打开相同的网址时很少发生这种情况。或者您有任何想法可以显示导致此问题的确切错误。

执行处理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper'的子请求时出错。

 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.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.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__DisplayClass1c.<InvokeActionResultWithFilters>b__19()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

PS。我遇到过这个问题。但我的旧bug经常显示错误,这是由于ViewPage中的语法错误导致的,另一个错误是由于扩展方法中的错误造成的。

1 个答案:

答案 0 :(得分:2)

嗯,你问题中的信息无法让我们准确地说出错误是什么,因为它在我看来,你在这里给出的堆栈跟踪实际上只是最外层的例外。我们需要看到内部异常层次结构能够更好地诊断。

但是...

在渲染的任何视图中运行Asp.Net代码时,这将是一个错误。它可能是错误的服务器端代码(编译器错误)或运行时错误,例如NullReferenceException直接出现在页面代码中,或者出现在页面调用的组件中(例如,如您所说,{ {1}})。

理论上你应该看到一个Asp.Net错误页面,显示aspx中的哪一行导致了这个问题。

我会附加调试器并确保在Debug-> Exceptions对话框中勾选'Thrown'列。然后再次点击同一页面,您应该看到错误发生的确切位置。

我很欣赏这个问题偶尔发生一次 - 因此我会查看该页面中的代码(实际上是服务于其View模型的控制器),其中数据依赖于某些变量(当前用户,时间)甚至一天)然后看看它是否可能是空的或其他什么。