2009-10-15 34 views
1

如果我离开了一段时间的ASP.NET MVC应用程序然后尝试访问任何页面,或者如果我重新编译应用程序并尝试访问任何根页我得到的Error executing child request for handler错误其次是页面路径,如'ASP.areas_accounts_views_contractscontrol_createdatacontract_aspx'.任何想法为什么这可能会发生?它只是在重新编译之后发生的,这意味着如果它已经启动,每个人都会在尝试访问任何页面时看到这个错误,但是在主页上。可能超时问题

干杯

这里的堆栈跟踪:

[HttpException (0x80004005): Error executing child request for handler 'ASP.areas_accounts_views_contractscontrol_generalcontracts_aspx'.] 
    System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) +2677782 
    System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) +77 
    System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) +28 
    System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) +22 
    System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) +180 
    System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page, TextWriter textWriter) +96 
    System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer) +95 
    System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +278 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +10 
    System.Web.Mvc.<>c__DisplayClass11.<InvokeActionResultWithFilters>b__e() +20 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +251 
    System.Web.Mvc.<>c__DisplayClass13.<InvokeActionResultWithFilters>b__10() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +178 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +392 
    System.Web.Mvc.Controller.ExecuteCore() +126 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +39 
    System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +7 
    System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +151 
    System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +57 
    System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 

源错误:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

HttpHandlers的我的web.config的部分

<httpHandlers> 
    <remove verb="*" path="*.asmx"/> 
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
    <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" /> 
</httpHandlers> 

提交的bug to MvcSiteMap on CodePlex

+0

你能发布web.config的部分吗? – UpTheCreek 2009-10-20 07:10:09

+0

我修改了我原来的帖子。 – Kezzer 2009-10-20 07:47:18

+0

似乎会议问题。 – 2009-10-21 07:37:16

回答

0

我不认为这是重新编译是问题。

它在IIS中的应用程序闲置了一段时间,或者如果有应用程序池的回收,则在内存中缓存的信息将丢失。

下一次调用将触发JIT重新编译。

什么也丢失了任何缓存在内存中的数据,以及可能已经创建的任何singelton对象。

我的猜测是,你正在创建或初始化的东西,当调用根页面。所有其他页面都依赖于此初始化已完成。这就是为什么其他页面在根页面之前被调用的原因。

+0

是的,事实证明,它实际上是一个MvcSiteMap中的错误,因为我在调试模式下进行了测试。它有一个超时标志,所以它重新呈现菜单,但是当它去抓取当前的SiteMapNode时,由于第三方库而失败。我将它作为我在编辑中发布的错误提交。 – Kezzer 2009-10-26 09:02:12