【发布时间】:2011-04-02 15:47:10
【问题描述】:
我知道已经有一些关于这个特定问题的帖子,但我不知道我做错了什么。错误发生在此页面上:http://www.gentec-eo.com/products/thz-detectors,我无法重现它。我收到一封电子邮件,每天报告此错误 2 到 6 次,我一直在寻找解决方案,但我无法弄清楚。需要注意的一件事是它总是来自同一个 ip : 72.14.199.4 女巫我认为是谷歌的机器人。我没有得到内部异常。我的代码非常简单,唯一与其他页面不同的是我使用 Telerik 的 Grid 来显示带有 jQuery 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,Func
1 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(Stringstr,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