【问题标题】:Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper'执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper”的子请求时出错
【发布时间】:2011-04-02 15:47:10
【问题描述】:

我知道已经有一些关于这个特定问题的帖子,但我不知道我做错了什么。错误发生在此页面上:http://www.gentec-eo.com/products/thz-detectors,我无法重现它。我收到一封电子邮件,每天报告此错误 2 到 6 次,我一直在寻找解决方案,但我无法弄清楚。需要注意的一件事是它总是来自同一个 ip : 72.14.199.4 女巫我认为是谷歌的机器人。我没有得到内部异常。我的代码非常简单,唯一与其他页面不同的是我使用 Telerik 的 Grid 来显示带有 jQ​​uery post 操作的数据。

这是我的错误:

消息:执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper”的子请求时出错。

堆栈跟踪:在 System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler 处理程序,TextWriter 编写器,布尔值 preserveForm,布尔 setPreviousPage, VirtualPath 路径,VirtualPath 文件路径,字符串 physPath,异常 错误,字符串 queryStringOverride) 在 System.Web.HttpServerUtility.Execute(IHttpHandler 处理程序,TextWriter 编写器,布尔值 preserveForm,布尔 setPreviousPage) 在 System.Web.HttpServerUtility.Execute(IHttpHandler 处理程序,TextWriter 编写器,布尔值 保留形式)在 System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler 处理程序,TextWriter 编写器,布尔值 保留形式)在 System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) 在 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext 上下文)在 System.Web.Mvc.ControllerActionInvoker.c_DisplayClass14.b_11() 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter 过滤器,ResultExecutingContext preContext,Func1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList1 过滤器, ActionResult actionResult) 在 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext 控制器上下文,字符串动作名称) IP : 72.14.199.4

编辑: 内部异常

消息:类型异常 'System.Web.HttpUnhandledException' 被抛出。

堆栈跟踪:在 System.Web.UI.Page.HandleError(异常 吃 System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest(布尔 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest() 在 System.Web.UI.Page.ProcessRequest(HttpContext 上下文)在 System.Web.Mvc.ViewPage.ProcessRequest(HttpContext 上下文)在 ASP.views_page_productcategory_aspx.ProcessRequest(HttpContext 上下文)在 System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.c_DisplayClass1.b_0() 在 System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.c_DisplayClass4.b_3() 在 System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 函数)在 System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(动作 行动)在 System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler 处理程序,TextWriter 编写器,布尔值 preserveForm,布尔 setPreviousPage, VirtualPath 路径,VirtualPath 文件路径,字符串 physPath,异常 错误,字符串查询StringOverride)

我的看法:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<PageModel>" %>
<%@ Import Namespace="SPK.CMS.Domain.Model"%>
<%@ Import Namespace="Web.ViewModels"%>
<%@ Import Namespace="Resources" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"><%= Model.CurrentCategory.HeadTitle %></asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="additionnalHeadElement" runat="server">
    <meta name="description" lang="fr" content="<%= Model.CurrentCategory.MetaDescription %>" />
    <meta name="keywords" lang="fr" content="<%= Model.CurrentCategory.MetaKeywords %>" />
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="content" runat="server">

    <div id="splited-content">

        <div id="left-content">

            <% Html.RenderPartial(MVC.Shared.Views.MenuProduct); %>

      </div>

      <div id="right-content">

        <%if(!string.IsNullOrEmpty(Model.CurrentCategory.HTMLContent)){ %>
            <div id="product-cat-content"><%= Model.CurrentCategory.HTMLContent %></div>
        <%} %>

        <div id="product-compare">

            <% if (Model.CurrentCategory.FriendlyUrl.Contains("thz-detectors"))
              { %>
                <%= Html.Telerik().Grid<ProductCompare>()
                        .Name("GridTHz")
                        .Columns(colums =>
                         {
                             colums.Bound(c => c.Name).Title(Resource.MODEL).HtmlAttributes(new { @class = "center-text" }).ClientTemplate("<a href=\"" + Url.Action(MVC.Page.Product()) + "/<#=ProductName#>" + "/\" ><#=Name#></a>");
                             colums.Bound(c => c.Pmax).Title(Resource.Pmax).HeaderHtmlAttributes(new { @class = "center-text" }).ClientTemplate("<#=PmaxFormated#>");
                             colums.Bound(c => c.Pmin).Title(Resource.Pmin).HeaderHtmlAttributes(new { @class = "center-text" }).ClientTemplate("<#=PminFormated#>");
                             colums.Bound(c => c.Fmin).Title(Resource.Fmin).HeaderHtmlAttributes(new { @class = "center-text" }).ClientTemplate("<#=Fmin#> Hz");
                             colums.Bound(c => c.Fmax).Title(Resource.Fmax).HeaderHtmlAttributes(new { @class = "center-text" }).ClientTemplate("<#=Fmax#> Hz");
                             colums.Bound(c => c.AnalogOutput).Title(Resource.ANALOG_OUTPUT).HeaderHtmlAttributes(new { @class = "center-text" });
                             colums.Bound(c => c.SensorType).Title(Resource.SENSOR_TYPE).HeaderHtmlAttributes(new { @class = "center-text" });
                             colums.Bound(c => c.Surface).Title(Resource.APERTURE).HeaderHtmlAttributes(new { @class = "center-text" }).ClientTemplate("<#=Aperture#>");
                         })
                        .DataBinding(d => d.Ajax().Select("ListProductCompare", "Page", new { categoryName = Model.CurrentCategory.Name}))
                        .Sortable()
                %>    
            <%}%>

        </div>

      </div>

      <div class="clear"></div>

    </div>

<%= Html.Telerik().ScriptRegistrar().jQuery(false).DefaultGroup(g => g.DefaultPath("~/Content/javascript/2010.1.309")) %>
<script type="text/javascript">document.write(unescape('%3Cscript type="text/javascript" src="' + document.location.protocol + '//dnn506yrbagrg.cloudfront.net/pages/scripts/0010/6692.js"%3E%3C%2Fscript%3E'))</script>
</asp:Content>

我的控制者的行动:

public virtual ActionResult ProductCategory(string productCategory)
{
    if (string.IsNullOrEmpty(productCategory)) return Home();
    var currentCategory = _productCatRepo.GetByUrl(productCategory);
    var pageModel = new PageModel();
    if (currentCategory == null)
    {
        return Page404();
    }
    pageModel.CurrentCategory = currentCategory;
    BuildMenusAndBreadCrumb(pageModel);
    GetHeader(pageModel, currentCategory);
    ViewData.Model = pageModel;

    return View();
}
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public virtual ActionResult ListProductCompare(string categoryName)
{

    var gridModel = new GridModel<ProductCompare>();
    gridModel.Data = _productCompareRepo.GetByCategory(categoryName);
    return View(gridModel);
}

非常感谢您的帮助!

编辑 2:

我还有另一个 InnerException,但我仍然无法弄清楚我的问题是什么。

Message : Value cannot be null. Parameter name: String 

Stack Trace : at System.Number.StringToNumber(String

str,NumberStyles 选项, NumberBuffer&数字,NumberFormatInfo 信息,布尔 parseDecimal)在 System.Number.ParseInt32(字符串 s, NumberStyles 样式,NumberFormatInfo 信息)在 System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion() 在 System.Web.HttpBrowserCapabilitiesWrapper.get_MajorVersion() 在 Telerik.Web.Mvc.Extensions.HttpRequestBaseExtensions.CanCompress(HttpRequestBase 实例)在 Telerik.Web.Mvc.UI.ScriptRegistrar.WriteScriptSources(TextWriter 作家)在 Telerik.Web.Mvc.UI.ScriptRegistrar.Write(TextWriter 作家)在 Telerik.Web.Mvc.UI.ScriptRegistrar.Render() 在 Telerik.Web.Mvc.UI.ScriptRegistrarBuilder.ToString() 在 System.Web.HttpWriter.Write(对象 obj) 在 System.Web.Mvc.ViewPage.SwitchWriter.Write(对象 值)在 System.Web.UI.HtmlTextWriter.Write(对象 值)在 ASP.views_page_productcategory_aspx.__RenderContent2(HtmlTextWriter __w,控制 parameterContainer) 在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家,ICollection 儿童)在 ASP.views_shared_site_master._渲染_control1(HtmlTextWriter __w,控制 parameterContainer) 在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家,ICollection 儿童)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家,ICollection 儿童)在 System.Web.UI.Page.Render(HtmlTextWriter 作家)在 System.Web.Mvc.ViewPage.Render(HtmlTextWriter 作家)在 System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint)

【问题讨论】:

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


    【解决方案1】:

    不幸的是,此堆栈跟踪无助于查明问题。我建议您记录用于导致异常的请求 url 和参数。如果您使用的是ELMAH,那么您已经拥有此信息,如果没有,您可以在Global.asaxApplication_Error 处理程序中轻松执行此操作。这样您就可以确定确切的原因并重现问题。

    【讨论】:

    • 我已经更新了我的报告代码,以便我可以拥有内部异常,现在我必须等待接收异常...一旦我拥有它,我将发布完整的堆栈跟踪。谢谢
    猜你喜欢
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多