Ошибка при выполнении дочернего запроса для обработчика 'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper' - PullRequest
3 голосов
/ 02 апреля 2011

Я знаю, что уже есть пост для этого конкретного вопроса, но я не могу понять, что я делаю неправильно. Ошибка происходит на этой странице: http://www.gentec -eo.com / products / thz-детекторы , я не могу воспроизвести ее. Я получаю электронное письмо с сообщениями об этой ошибке от 2 до 6 раз в день, некоторое время я искал решение, но не могу найти его. Стоит заметить, что это всегда с одного и того же ip : 72.14.199.4, ведь я думаю, что это бот Google. Я не получаю исключений. Мой код довольно прост, единственное, что отличается от других страниц, это то, что я использую Grid Telerik для показа данных с помощью пост-действия jQuery.

Вот моя ошибка:

Сообщение. Ошибка при выполнении дочернего запроса для обработчика 'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper'.

Трассировка стека: в System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler обработчик, писатель TextWriter, логическое значение preserveForm, Boolean setPreviousPage, Путь VirtualPath, VirtualPath filePath, String PhysPath, Exception ошибка, String queryStringOverride) в System.Web.HttpServerUtility.Execute (IHttpHandler обработчик, писатель TextWriter, логическое значение preserveForm, Boolean setPreviousPage) в System.Web.HttpServerUtility.Execute (IHttpHandler обработчик, писатель TextWriter, логическое значение preserveForm) в System.Web.HttpServerUtilityWrapper.Execute (IHttpHandler обработчик, писатель TextWriter, логическое значение preserveForm) в 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, Func 1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList 1 фильтры, ActionResult actionResult) в System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext controllerContext, String actionName) IP: 72.14.199.4

РЕДАКТИРОВАТЬ: Внутреннее исключение

Сообщение: исключение типа 'System.Web.HttpUnhandledException' был брошен.

Трассировка стека: в System.Web.UI.Page.HandleError (Exception есть 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.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 func) в System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap (Action действие) в System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler обработчик, писатель TextWriter, логическое значение preserveForm, Boolean setPreviousPage, Путь VirtualPath, VirtualPath filePath, String PhysPath, Exception ошибка, String queryStringOverride)

Мой взгляд:

<%@ 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 & number, NumberFormatInfo info, логическое parseDecimal) в System.Number.ParseInt32 (String 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 () at System.Web.HttpWriter.Write (Object объект) в System.Web.Mvc.ViewPage.SwitchWriter.Write (Объект значение) в System.Web.UI.HtmlTextWriter.Write (Объект значение) в ASP.views_page_productcategory_aspx .__ RenderContent2 (HtmlTextWriter __w, управляющий параметрContainer) в System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter писатель, коллекция детей) в ASP.views_shared_site_master ._ Рендер _control1 (HtmlTextWriter __w, управляющий параметрContainer) в System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter писатель, коллекция детей) в System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter писатель, коллекция детей) в System.Web.UI.Page.Render (HtmlTextWriter писатель) в System.Web.Mvc.ViewPage.Render (HtmlTextWriter писатель) в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

1 Ответ

2 голосов
/ 02 апреля 2011

К сожалению, эта трассировка стека не помогает точно определить проблему. Я бы порекомендовал вам записать URL-адрес запроса и параметры, которые использовались, чтобы вызвать исключение. Если вы используете ELMAH , у вас уже есть эта информация, и если нет, вы можете легко выполнить ее в обработчике Application_Error в Global.asax. Таким образом, вы сможете определить точную причину и воспроизвести проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...